Per iniziare

Seleziona la piattaforma: Android iOS JavaScript

Segui questi passaggi per configurare la personalizzazione basata sui dati per i set di dati.

Ottieni una chiave API e abilita le API

Prima di utilizzare la personalizzazione basata sui dati per i set di dati, devi avere: un progetto Cloud con un account di fatturazione e sia Maps SDK for iOS sia l'API Maps Datasets abilitati. Per saperne di più, consulta:

Crea un ID mappa

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

Uno screenshot della console
Google Cloud

Crea un nuovo stile di mappa

Per creare un nuovo stile di mappa, segui le istruzioni riportate in Creare e utilizzare gli stili di mappa per creare lo stile. Al termine, associa lo stile all'ID mappa appena creato.

Aggiorna il codice di inizializzazione della mappa

Questo passaggio richiede che un ID mappa sia associato a uno stile con uno o più livelli di funzionalità abilitati. Per verificare che l'ID mappa sia configurato correttamente nella console Cloud, esamina la configurazione in Gestione mappe.

Swift

// A map ID using a style with one or more feature layers enabled

let mapID = GMSMapID(identifier: "YOUR_MAP_ID")
let camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
let options = GMSMapViewOptions()
options.camera = camera
options.mapID = mapID
let mapView = GMSMapView(options: options)

Objective-C

// A map ID using a style with one or more feature layers enabled

GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
options.mapID = mapID;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Controlla le funzionalità della mappa

La personalizzazione basata sui dati per i set di dati richiede funzionalità abilitate nella console Google Cloud e associate a un ID mappa. Poiché gli ID mappa sono soggetti a modifiche, puoi chiamare mapView.mapCapabilities su un GMSMapView per verificare se una determinata funzionalità (ad esempio la personalizzazione basata sui dati) è disponibile prima di chiamarla.

Puoi anche rilevare le modifiche nelle funzionalità della mappa sottoscrivendo GMSViewDelegate. Questo esempio mostra come utilizzare il protocollo per verificare i requisiti di personalizzazione basata sui dati.

Swift

class SampleViewController: UIViewController {

  private lazy var mapView: GMSMapView = {
    let options = GMSMapViewOptions()
    options.mapID = GMSMapID(identifier: "YOUR_MAP_ID")
    options.camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
    return GMSMapView(options: options)
  }()

  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 {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  options.mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.delegate = 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

Passaggi successivi