Iniziare

Seleziona la piattaforma: Android iOS JavaScript

Per utilizzare la personalizzazione basata sui dati per i confini, devi creare un ID mappa. Poi, creare un nuovo stile di mappa, selezionare i livelli necessari degli elementi di confine e associare lo stile all'ID mappa.

Creare un ID mappa

Un mapID è un identificatore univoco che rappresenta a una singola istanza di una mappa di Google Maps. Puoi creare ID mappa e aggiornare uno stile associato a un ID mappa in qualsiasi momento nella console Google Cloud.

Uno screenshot di Google Cloud
console

Crea un nuovo stile di mappa

Per creare un nuovo stile di mappa, segui le istruzioni in Gestire la mappa stili per creare lo stile. Al termine, associa lo stile all'ID mappa appena creato.

Seleziona i livelli degli elementi

Nella console Google Cloud puoi selezionare i livelli di funzionalità da visualizzare. Questo determina quali tipi di confini vengono visualizzati sulla mappa (ad esempio località, stati e così via).

Gestire i livelli degli elementi

  1. Nella console Google Cloud, vai alla sezione Stili di mappa

  2. Seleziona un progetto, se richiesto.

  3. Seleziona uno stile di mappa.

  4. Fai clic sul menu a discesa Livelli degli elementi per aggiungere o rimuovere livelli.

  5. Fai clic su Salva per salvare le modifiche e renderle disponibili per le tue mappe.

Uno screenshot che mostra le
menu a discesa.

Aggiorna il codice di inizializzazione della mappa

Questo passaggio richiede l'associazione di un ID mappa a uno stile con uno o più elementi strati abilitati. Per verificare che l'ID mappa sia configurato correttamente in Console Cloud, rivedi come è configurata in Maps Gestione.

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]];

Aggiungere livelli di elementi a una mappa

Per ottenere un riferimento a un livello di elementi sulla mappa, richiama mapView.featureLayer(of:) quando la mappa viene inizializzata:

Swift

let layer = mapView.featureLayer(of: .locality)

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

Controllare le funzionalità della mappa

Gli stili basati sui dati per i confini richiedono funzionalità abilitate nel nella console Google Cloud e associata a un ID mappa. Poiché gli ID mappa sono soggetti a cambia, puoi chiamare mapView.mapCapabilities su un GMSMapView per verificare se una determinata funzionalità (ad esempio stili basati sui dati) sono disponibili prima di chiamarli.

Puoi anche rilevare cambiamenti nelle funzionalità della mappa iscrivendoti a GMSViewDelegate Questo esempio mostra come utilizzare per verificare i requisiti di stile basato sui dati.

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