Primeiros passos

Selecione a plataforma: iOS JavaScript

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.

Uma captura de tela do Google Cloud
console

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

  1. No console do Google Cloud, acesse "Estilos de mapa" página

  2. Selecione um projeto, se solicitado.

  3. Selecione um estilo de mapa.

  4. Clique no menu suspenso Camadas de elementos para adicionar ou remover camadas.

  5. Clique em Salvar para disponibilizar as mudanças nos mapas.

Uma captura de tela mostrando
no menu suspenso.

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 um determinado recurso (por exemplo, estilização baseada em dados) está disponível antes de ser chamada.

Você também pode detectar alterações nas funcionalidades 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