Pierwsze kroki

Wybierz platformę: iOS JavaScript

Aby w przypadku granic używać stylu opartego na danych, musisz utworzyć identyfikator mapy. Następnie musisz utworzyć nowy styl mapy, wybrać wymagane warstwy cech granicy i powiązać ten styl z identyfikatorem mapy.

Utwórz identyfikator mapy

mapID to unikalny identyfikator, który reprezentuje pojedynczą instancję Map Google. W konsoli Google Cloud możesz w każdej chwili utworzyć identyfikatory map i zaktualizować styl powiązany z identyfikatorem mapy.

Zrzut ekranu konsoli Google Cloud

Tworzenie nowego stylu mapy

Aby utworzyć nowy styl mapy, wykonaj czynności opisane w artykule Zarządzanie stylami mapy. 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. Określa to, jakie rodzaje granic pojawią się na mapie (np. miejscowości, stany itp.).

Zarządzanie warstwami cech

  1. W konsoli Google Cloud otwórz stronę 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 cech.

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

Zrzut ekranu z menu.

Zaktualizuj kod inicjowania mapy

Ten krok wymaga powiązania identyfikatora mapy ze stylem z włączoną co najmniej jedną warstwą cech. Aby sprawdzić, czy identyfikator mapy jest prawidłowo skonfigurowany w konsoli Cloud, sprawdź, jak jest skonfigurowany 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]];

Dodawanie warstw cech do mapy

Aby uzyskać odniesienie do warstwy cech na mapie, wywołaj mapView.featureLayer(of:) przy 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 konsoli Google Cloud i powiązane z identyfikatorem mapy. Identyfikatory map mogą się zmieniać, dlatego przed wywołaniem funkcji GMSMapView możesz wywołać metodę mapView.mapCapabilities, aby sprawdzić, czy jest dostępna konkretna funkcja (np. styl oparty na danych).

Możesz też wykrywać zmiany w możliwościach mapy, subskrybując GMSViewDelegate. Ten przykład pokazuje, jak za pomocą protokołu 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