Para usar o estilo baseado em dados para limites, você precisa criar um ID do mapa. Em seguida, você precisa criar um novo estilo de mapa, selecionar as camadas de elementos de limites necessárias e associar o estilo ao ID do mapa.
Criar um ID do mapa
Um mapID é um identificador exclusivo que representa uma única instância de um mapa do Google. Você pode criar IDs de mapas e atualizar um estilo associadas a um ID de mapa a qualquer momento no console do Google Cloud.
Criar um estilo de mapa
Para criar um novo estilo de mapa, siga as instruções em Gerenciar mapa estilos para criar o estilo. Quando terminar, associe o estilo ao ID do mapa recém-criado.
Selecionar camadas de elementos
No console do Google Cloud, é possível selecionar as camadas de elementos a serem exibidas. Isso determina que tipos de limites aparecem no mapa (por exemplo, localidades, estados e assim por diante).
Gerenciar camadas de elementos
No console do Google Cloud, acesse "Estilos de mapa" página
Selecione um projeto, se solicitado.
Selecione um estilo de mapa.
Clique no menu suspenso Camadas de elementos para adicionar ou remover camadas.
Clique em Salvar para disponibilizar as mudanças nos mapas.
Atualizar o código de inicialização do seu mapa
Esta etapa exige que um ID do mapa seja associado a um estilo com um ou mais elementos camadas ativadas. Para verificar se o ID do mapa está configurado corretamente em Console do Cloud, analise como ele está configurado em Maps de configuração.
Swift
// A map ID using a style with one or more feature layers enabled let mapID = GMSMapID(identifier: "YOUR_MAP_ID") let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))
Objective-C
// A map ID using a style with one or more feature layers enabled GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];
Adicionar camadas de elementos a um mapa
Para obter uma referência a uma camada de elementos no mapa, chame
mapView.featureLayer(of:)
quando o mapa é inicializado:
Swift
let layer = mapView.featureLayer(of: .locality)
Objective-C
GMSFeatureLayer*layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];
Verificar recursos do mapa
O estilo baseado em dados para limites exige recursos que são ativados na
Console do Google Cloud e associado a um ID de mapa. Como os IDs de mapa estão sujeitos à
mudança, é possível chamar mapView.mapCapabilities
em uma
GMSMapView
para verificar se uma determinada capacidade (por exemplo,
estilização baseada em dados) está disponível antes de ser chamada.
Você também pode detectar alterações nos recursos do mapa se inscrevendo em
GMSViewDelegate
Este exemplo mostra como usar o
para verificar os requisitos de estilo baseado em dados.
Swift
class SampleViewController: UIViewController { private lazy var mapView: GMSMapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)) override func loadView() { self.view = mapView mapView.delegate = self } } extension SampleViewController: GMSMapViewDelegate { func mapView(_ mapView: GMSMapView, didChange mapCapabilities: GMSMapCapabilityFlags) { if (!mapCapabilities.contains(.dataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } }
Objective-C
@interface SampleViewController: UIViewController <GMSMapViewDelegate> @end @implementation SampleViewController - (void)loadView { GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]]; mapView.delegete = self; self.view = mapView; } - (void)mapView:(GMSMapView *)mapView didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities { if (!(mapCapabilities & GMSMapCapabilityFlagsDataDrivenStyling)) { // Data-driven styling is *not* available, add a fallback. // Existing feature layers are also unavailable. } } @end