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 SDK Map na iOS i Map Datasets API. Aby dowiedzieć się więcej, zapoznaj się z tymi artykułami:

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ądzaj stylami map. Po zakończeniu powiązaj styl z nowo utworzonym identyfikatorem mapy.

Aktualizowanie kodu inicjalizacji mapy

Ten krok wymaga powiązania identyfikatora mapy ze stylem z co najmniej jedną włączoną warstwą obiektów. Aby sprawdzić, czy identyfikator mapy jest prawidłowo skonfigurowany w konsoli Google Cloud, sprawdź jego ustawienia 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.mapCapabilitiesGMSMapView, aby sprawdzić, czy dana funkcja (np. stylizacja oparta 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