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 precisar 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 mostram 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 mudar o 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 ficam 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 GitHub App de exemplo Google Maps e veja o projeto CloudBasedMapStylingViewController (exemplo do GitHub para Swift | Objective-C).

Demonstração opcional do Cloud Styling para CocoaPod ou GitHub

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

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 tiver uma chave de API, siga estas instruções para configurar um projeto no console do Cloud e gerar uma. Ao configurar a chave no Console do Cloud, é possível especificar o identificador do pacote do seu app para garantir que somente ele possa usá-la. O identificador de pacote padrão do app de exemplos do SDK é com.example.GoogleMapsDemos.

Edite o arquivo SDKDemoAPIKey.h e cole a 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 Unlock.

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 CloudStyling mostra como estilizar o mapa usando um conjunto de estilos no console do Google Cloud.

Quando o app de demonstração 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 do carregamento de diferentes IDs de mapa.

Você também pode tentar adicionar seu próprio estilo ("Mapa de estilos" > "Adicionar um novo ID de mapa") e conferir a atualização do mapa 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

JSFiddle.net (link em inglês) Google Cloud Shell

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-os para evitar conflitos com futuros recursos.

  2. Para adicionar um ID a um mapa novo ou atual 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