Pierwsze kroki

Wybierz platformę: Android iOS JavaScript

Aby w przypadku granic używać stylu opartego na danych, musisz utworzyć identyfikator mapy. Następnie należy utworzyć nowy styl mapy, wybrać wymagane warstwy obiektów granicy oraz powiązanie stylu z identyfikatorem mapy.

Utwórz identyfikator mapy

mapID to unikalny identyfikator, który reprezentuje tylko jedno wystąpienie Map Google. Możesz tworzyć identyfikatory map i aktualizować styl powiązane z identyfikatorem mapy w dowolnym momencie w konsoli Google Cloud.

Zrzut ekranu przedstawiający Google Cloud
konsola

Tworzenie nowego stylu mapy

Aby utworzyć nowy styl mapy, postępuj zgodnie z instrukcjami w artykule Zarządzanie mapą style, aby utworzyć stylu. Po zakończeniu powiąż styl z nowo utworzonym identyfikatorem mapy.

Wybierz warstwy cech

W konsoli Google Cloud możesz wybrać warstwy cech, które mają być wyświetlane. Ten Określa, jakie rodzaje granic pojawią się na mapie (np. miejscowości, stanów i tak dalej).

Zarządzanie warstwami cech

  1. W konsoli Google Cloud otwórz Style mapy

  2. Jeśli pojawi się taka prośba, wybierz projekt.

  3. Wybierz styl mapy.

  4. Aby dodać lub usunąć warstwy, kliknij menu Warstwy funkcji.

  5. Kliknij Zapisz, aby zapisać zmiany i udostępnić je na mapach.

Zrzut ekranu przedstawiający
.

Zaktualizuj kod inicjowania mapy

Ten krok wymaga powiązania identyfikatora mapy ze stylem, w którym włączono co najmniej 1 warstwę obiektów. Aby sprawdzić, czy identyfikator mapy jest prawidłowo skonfigurowany w konsola Cloud; sprawdź w sekcji Mapy Google, jak jest skonfigurowana Zarządzanie.

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

Dodawanie warstw obiektów do mapy

Aby uzyskać odniesienie do warstwy cech na mapie, wywołaj mapView.featureLayer(of:) po zainicjowaniu mapy:

Swift

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

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

Sprawdź możliwości mapy

Styl oparty na danych dla granic wymaga funkcji, które są włączone w Konsola Google Cloud i powiązana z identyfikatorem mapy. Identyfikatory map mogą się zmieniać, dlatego możesz wywołać funkcję mapView.mapCapabilities na mapie GMSMapView, aby sprawdzić, czy dana funkcja (np. stylizacja oparta na danych) jest dostępna przed jej wywołaniem.

Możesz też wykrywać zmiany w możliwościach mapy, subskrybując GMSViewDelegate Ten przykład pokazuje, jak użyć funkcji aby sprawdzić wymagania dotyczące stylu opartego 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