Estilização de mapas baseada na nuvem

A Plataforma Google Maps oferece recursos de Estilização de mapas baseada na nuvem que facilitam a personalização e o gerenciamento de mapas usando o console do Google Cloud. Assim, é possível criar uma experiência personalizada para os usuários sem ter que atualizar o código dos seus apps sempre que você fizer mudanças de estilo.

Os estilos criados antes de 15 de setembro de 2020 não exibirão os recursos naturais avançados do Google Maps. Para usar esses recursos, você precisa criar um estilo de mapa.

Com a Estilização de mapas baseada na nuvem, você pode criar e editar estilos para qualquer um dos seus apps que usam o Google Maps sem precisar fazer mudanças no código quando o ID do mapa estiver em vigor. Todas as mudanças de estilo podem ser feitas no console do Cloud, e não é preciso entender de programação. Mude a aparência e a cor de vários elementos do mapa, como vias, edifícios, corpos hídricos, pontos de interesse e trajetos de transporte público.

Confira os recursos:

  • Estilização de mapas baseada na nuvem: gerencie e estilize seus mapas dinâmicos ou estáticos no console do Cloud usando IDs e estilos em vez de personalizar seu mapa no código usando JSON.
  • Mapa vetorial: desenvolvedores de JavaScript podem usar o mesmo mapa baseado em vetor acelerado por WebGL disponível no maps.google.com.br diretamente nos próprios apps da Web.
  • Filtragem de PDIs de empresas: é possível remover cinco categorias de pontos de interesse da exibição do mapa.
  • Controle de densidade de PDIs: ajuste a densidade dos pontos de interesse que aparecem no mapa básico para mostrar mais ou menos PDIs por padrão.

Embora a Estilização de mapas baseada na nuvem esteja disponível no SDK do Maps para Android1, no SDK do Maps para iOS, em JavaScript e na API Maps Static, nem todos os recursos ficarão visíveis em todas as plataformas.

Antes de começar

* Fazer upgrade do SDK do Maps para Android
Para utilizar a Estilização de mapas baseada na nuvem, é preciso usar a versão 18.0.0 ou posterior do SDK do Maps para Android e a versão mais recente do renderizador desse SDK.

Faturamento

Usar a Estilização de mapas baseada na nuvem requer um ID de mapa. Em JavaScript e nos SDKs do Maps para Android e iOS, o uso de um ID do mapa gera uma cobrança na SKU do Dynamic Maps. Na API Maps Static, esse uso cria cobranças na SKU do Static Maps.

Exemplos

Android

Executar o app de exemplo ApiDemos

Para executar o app de exemplo ApiDemos, confira o exemplo do GitHub (Java | Kotlin) e a demonstração de CloudBasedMapStylingDemoActivity(Java | Kotlin). Observação: os links estão em inglês.

Os aplicativos de exemplo Java e Kotlin (em inglês) mostram como estilizar seu mapa Android na nuvem.

Problemas conhecidos

Depois que seu app é entregue aos clientes, os estilos personalizados de mapas com IDs podem ser atualizados no console do Google Cloud. Os novos estilos são aplicados no app em algumas horas.

Para garantir a exibição imediata dos novos estilos personalizados para fins de teste, limpe os dados do app do dispositivo de teste. Para saber como limpar dados do seu dispositivo, consulte Ajuda do Android > Liberar espaço.

As configurações variam de acordo com o smartphone. Para mais informações, entre em contato com o fabricante do dispositivo.

iOS

Executar o app de exemplo ApiDemos

Para executar o app de exemplo ApiDemos, consulte o exemplo do app de exemplo GoogleMap no GitHub e o projeto CloudBasedMapStylingViewController (exemplo do GitHub para Swift | Objective-C).

Demonstração opcional do Cloud Styling CocoaPod ou GitHub

Em vez de começar do zero, teste nosso aplicativo de amostra em Objective-C que demonstra como estilizar seu mapa do iOS na nuvem aqui.

Como criar o app de demonstração Beta

No Xcode, pressione o botão de compilação para compilar e executar o esquema atual. O build produz um erro, solicitando que você insira sua chave de API no arquivo SDKDemoAPIKey.h.

Se você ainda não tem uma chave de API, siga estas instruções para configurar um projeto no console do Cloud e conseguir uma. Ao configurar a chave no Console do Cloud, é possível especificar o identificador do pacote do seu app para garantir que apenas seu app possa usá-la. O identificador padrão do pacote do app de amostras do SDK é com.example.GoogleMapsDemos.

Edite o arquivo SDKDemoAPIKey.h e cole sua chave de API na definição da constante kAPIKey:

```
static NSString *const kAPIKey = @"YOUR_API_KEY";
```

Se o Xcode solicitar o desbloqueio do arquivo SDKDemoAPIKey.h para edição, escolha Desbloquear.

Remova a seguinte linha:

```
#error Register for API Key and insert here.
```

Compile e execute o projeto.

Demonstração de mapas baseados na nuvem

A demonstração de CloudStyling mostra como estilizar o mapa usando um conjunto de estilos no Console do Google Cloud.

Quando o app for iniciado, clique em "Personalização de mapas" na seção "Amostras Beta", na parte de cima da lista.

Clique em Estilizar mapa para ver o efeito de carregar diferentes IDs de mapa.

Você também pode adicionar seu próprio estilo ("Mapa de estilo" > "Adicionar um novo ID de mapa") e conferir a atualização dele com seu mapa estilizado.

JavaScript

Neste exemplo básico de carregamento de um mapa estilizado usando um ID do mapa, o Maps JavaScript faz referência ao ID 8e0a97af9386fef no carregamento e aplica de forma automática o estilo atualmente associado a esse ID.

TypeScript

function initMap(): void {
  new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      mapId: "8e0a97af9386fef",
      center: { lat: 48.85, lng: 2.35 },
      zoom: 12,
    } as google.maps.MapOptions
  );
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  new google.maps.Map(document.getElementById("map"), {
    mapId: "8e0a97af9386fef",
    center: { lat: 48.85, lng: 2.35 },
    zoom: 12,
  });
}

window.initMap = initMap;
Exemplo

Testar amostra

API Maps Static

Um ID do mapa é um identificador associado a um recurso ou estilo de mapa específico. Configure um estilo de mapa e faça a associação dele a um ID no Console do Google Cloud. Depois, quando você faz referência um ID do mapa no código, o estilo associado é mostrado no seu app. Todas as atualizações de estilo que você fizer depois vão aparecer automaticamente no app, sem que os clientes precisem atualizar.

  1. Se você estiver usando a Estilização de mapas baseada na nuvem com um mapa personalizado personalizado com o parâmetro style, remova-o para evitar conflitos com futuros recursos.

  2. Para adicionar um ID a um mapa novo ou existente que usa uma das nossas APIs da Web, anexe o parâmetro de URL map_id e defina-o como o ID do mapa. Neste exemplo, mostramos como adicionar um ID a um mapa usando a API Maps Static.

    <img src="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Clabel:C%7C40.718217,-73.998284&key=YOUR_API_KEY&map_id=YOUR_MAP_ID&signature=YOUR_SIGNATURE" />
    


  1. A estilização de mapas baseada na nuvem não está disponível no Modo Lite do Android