Erste Schritte

Plattform auswählen: iOS JavaScript

Wenn Sie datengestützte Stile für Grenzen verwenden möchten, müssen Sie eine Karten-ID erstellen. Als Nächstes muss einen neuen Kartenstil erstellen, die erforderlichen Elementebenen für Begrenzungen auswählen und den Stil mit Ihrer Karten-ID verknüpfen.

Karten-ID erstellen

Eine mapID ist eine eindeutige Kennung für eine einzelne Instanz einer Google Maps-Karte. Sie können Karten-IDs erstellen und einen Stil aktualisieren die mit einer Karten-ID verknüpft sind.

Screenshot von Google Cloud
Console

Neuen Kartenstil erstellen

Folgen Sie der Anleitung unter Karte verwalten, um einen neuen Kartenstil zu erstellen: Stile zum Erstellen den Stil anpassen. Verknüpfen Sie anschließend den Stil mit der neu erstellten Karten-ID.

Featureebenen auswählen

In der Google Cloud Console können Sie auswählen, welche Featureebenen angezeigt werden sollen. Dieses bestimmt, welche Arten von Grenzen auf der Karte angezeigt werden (z. B. Orte, usw.).

Elementebenen verwalten

  1. Rufen Sie in der Google Cloud Console Kartenstile Seite

  2. Wählen Sie ein Projekt aus, wenn Sie dazu aufgefordert werden.

  3. Wählen Sie einen Kartenstil aus.

  4. Klicken Sie auf das Drop-down-Menü Elementebenen, um Ebenen hinzuzufügen oder zu entfernen.

  5. Klicken Sie auf Speichern, um Ihre Änderungen zu speichern und für Ihre Karten verfügbar zu machen.

Screenshot mit dem
aus.

Initialisierungscode der Karte aktualisieren

Für diesen Schritt muss eine Karten-ID einem Stil mit mindestens einem Element zugeordnet sein Ebenen aktiviert. Um zu überprüfen, ob Ihre Karten-ID korrekt eingerichtet ist, Cloud Console – überprüfen Sie die Konfiguration unter Maps Verwaltung.

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

Einer Karte Featureebenen hinzufügen

Um einen Verweis auf eine Elementebene auf Ihrer Karte zu erhalten, rufen Sie mapView.featureLayer(of:) beim Initialisieren der Karte:

Swift

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

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

Kartenfunktionen prüfen

Datengestützte Stile für Grenzen erfordern Funktionen, die in der Google Cloud Console verknüpft und mit einer Karten-ID verknüpft ist. Da für Karten-IDs ändern, können Sie mapView.mapCapabilities auf einer GMSMapView, um zu prüfen, ob eine bestimmte Funktion (z. B. datengestützten Stilen) ist verfügbar, bevor sie aufgerufen werden.

Sie können auch Änderungen an Kartenfunktionen erkennen, indem Sie GMSViewDelegate In diesem Beispiel wird gezeigt, wie Sie den Protokoll, um die Anforderungen für datengestützte Stile zu prüfen.

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