Usar IDs de mapa

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.

Após a criação, os IDs de mapa são associados a um projeto e também são restritos a uma única plataforma (Android, iOS, JavaScript) ou à API Maps Static.

Para criar ou gerenciar IDs de mapa no console do Cloud, faça o seguinte: é preciso ter o papel Projeto Proprietário ou Editor do projeto do IAM

Permissões necessárias

Para criar ou gerenciar qualquer ID ou estilo de mapa em uma projeto do Google Cloud, é necessário ter o Papel do IAM de proprietário ou editor no projeto.

Criar um ID do mapa

Um ID de mapa é um identificador exclusivo que representa uma única instância de um mapa do Google. Você pode criar IDs de mapa e atualizar um estilo associado a um ID de mapa a qualquer no console do Cloud.

Para criar um ID do mapa:

  1. No Console do Cloud, acesse a página Gerenciamento de mapas.
  2. Clique em Criar novo ID de mapa para exibir o formulário Criar novo ID de mapa.
    Criar novo ID de mapa

    No formulário, siga estas etapas:

    • Especifique um nome para o mapa.
    • Escolha um tipo de mapa ou plataforma.
    • Para mapas JavaScript, escolha o tipo de mapa vetorial ou de varredura.
    • Insira uma descrição do mapa.
    • Selecione Próxima para exibir o novo ID do mapa.

Associar um ID do mapa a um estilo

Estas instruções presumem que haja pelo menos um estilo de mapa no seu projeto.

  1. No Console do Cloud, acesse a página Gerenciamento de mapas.
  2. Nessa página, selecione um ID de mapa na coluna Nome do mapa.
  3. Na parte inferior deste formulário, escolha um estilo no menu suspenso Estilos de mapa associados a este ID de mapa.
  4. Selecione Salvar.
    Captura de tela mostrando a página de detalhes de um único ID do mapa, incluindo o campo suspenso que permite aos usuários associar um estilo a esse ID.

Adicionar o ID do mapa ao seu app

Android

Adicione o ID do mapa com um elemento <fragment> no arquivo de layout da atividade usando a classe MapView ou de forma programática usando a classe GoogleMapOptions.

Por exemplo, suponha que você tenha criado um ID do mapa armazenado como um valor de string chamado map_id em res/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">YOUR_MAP_ID</string>
</resources>

No caso de mapas adicionados ao arquivo de layout da atividade usando um elemento <fragment>, todos os fragmentos que devem ter o estilo personalizado precisam especificar o ID no atributo map:mapId:

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
    class="com.google.android.gms.maps.SupportMapFragment"
    …
    map:mapId="@string/map_id" />

Você também pode usar o atributo map:mapId da classe MapView para especificar um ID do mapa:

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    ....
    map:mapId="@string/map_id" />

Se quiser especificar um ID de maneira programática, transmita para uma instância MapFragment usando a classe GoogleMapOptions:

Java

 MapFragment mapFragment = MapFragment.newInstance(
     new GoogleMapOptions()
         .mapId(getResources().getString(R.string.map_id)));

Kotlin

 val mapFragment = MapFragment.newInstance(
     GoogleMapOptions()
         .mapId(resources.getString(R.string.map_id))
 )

No Android Studio, crie e execute seu app normalmente. Os estilos personalizados, conforme configurado na primeira etapa, serão aplicados a todos os mapas com um ID.

iOS

Para instanciar um mapa usando um ID, faça o seguinte:

  1. Crie um GMSMapID com a string do ID do mapa no Console do Cloud.
  2. Crie um GMSMapView especificando o ID do mapa que você acabou de criar.

Swift

let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: "<YOUR MAP ID>")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: camera)
self.view = mapView

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.0169
                                                        longitude:-122.336471
                                                             zoom:12];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"<YOUR MAP ID>"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;

Se você estiver usando seu próprio ID de mapa, poderá definir um novo estilo a qualquer momento no Cloud Console. Esse estilo será refletido na visualização do mapa automaticamente para você e os usuários em cerca de seis horas.

Se quiser ver as mudanças imediatamente, feche e reinicie seu aplicativo saindo do aplicativo, forçando a saída do aplicativo usado recentemente lista de apps e reabri-la. O mapa atualizado vai aparecer.

JavaScript

Para criar um mapa com um ID no código do aplicativo:

  1. Se você está personalizando o mapa com código JSON incorporado, remova o elemento Propriedade styles do objeto MapOptions. Caso contrário, pule esta etapa.

  2. Adicione um ID ao mapa usando a propriedade mapId. Exemplo:

map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8,
mapId: 'MAP_ID'
});

Maps Static

Para adicionar um ID de mapa a um mapa novo ou existente que usa um de nossos APIs web-service, 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" />

Um mapa centralizado na Ponte do Brooklyn, em Nova York, NY, EUA, com controles no canto inferior direito. O mapa mostra estilos personalizados nas estradas, água e terra.

Se você tiver uma assinatura digital no URL do Maps Static antes de adicionar o ID do mapa, você precisa criar e adicione uma nova assinatura digital depois de incluir o ID do mapa. Ao gerar o novo segredo de assinatura de URL, remova a assinatura digital anterior do URL.

Recursos disponíveis ao usar IDs de mapas

Estilização de mapas baseada na nuvem: estilize, personalize e gerencie mapas usando o console do Google Cloud.
Disponível em todas as plataformas (Android, JavaScript, iOS e API Maps Static)

Mapas vetoriais: um mapa composto por blocos baseados em vetores, desenhados no momento do carregamento. no lado do cliente usando WebGL.
Disponível em JavaScript