Rozpocznij

Wybierz platformę: Android iOS JavaScript

Aby skonfigurować styl oparty na danych w przypadku zbiorów danych, wykonaj te czynności.

Uzyskiwanie klucza interfejsu API i włączanie interfejsów API

Zanim użyjesz stylizacji opartej na danych w przypadku zbiorów danych, musisz mieć: projekt Cloud z kontem rozliczeniowym oraz włączone pakiety Maps SDK na iOS i Maps Datasets API. Więcej informacji znajdziesz w tych artykułach:

Tworzenie identyfikatora mapy

mapID to niepowtarzalny identyfikator, który reprezentuje pojedynczą instancję Mapy Google. Identyfikatory map możesz tworzyć i aktualizować w dowolnym momencie w konsoli Google Cloud.

Zrzut ekranu konsoli Google Cloud

Tworzenie nowego stylu mapy

Aby utworzyć nowy styl mapy, postępuj zgodnie z instrukcjami w sekcji Zarządzanie stylami map. Po zakończeniu powiązaj styl z nowo utworzonym identyfikatorem mapy.

Aktualizowanie kodu inicjalizacji mapy

Aby wykonać ten krok, musisz powiązać identyfikator mapy ze stylem, w którym włączono co najmniej 1 warstwę obiektów. Aby sprawdzić, czy identyfikator mapy jest prawidłowo skonfigurowany w konsoli Google Cloud, sprawdź jego konfigurację w sekcji Zarządzanie mapami.

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

Sprawdzanie możliwości mapy

Stylizacja zbiorów danych oparta na danych wymaga funkcji włączonych w konsoli Google Cloud i powiązanych z identyfikatorem mapy. Identyfikatory map mogą się zmieniać, dlatego możesz wywołać funkcję mapView.mapCapabilities na obiekcie GMSMapView, aby sprawdzić, czy dana funkcja (np. stylowanie oparte na danych) jest dostępna przed jej wywołaniem.

Możesz też wykryć zmiany w funkcjach map, subskrybując GMSViewDelegate. Ten przykład pokazuje, jak za pomocą protokołu sprawdzić wymagania dotyczące stylizacji opartej na danych.

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

Dalsze kroki