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, die eine einzelne Instanz einer Google-Karte darstellt. Sie können Karten-IDs erstellen und einen Stil aktualisieren die mit einer Karten-ID verknüpft sind.
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
Rufen Sie in der Google Cloud Console Kartenstile Seite
Wählen Sie ein Projekt aus, wenn Sie dazu aufgefordert werden.
Wählen Sie einen Kartenstil aus.
Klicken Sie auf das Drop-down-Menü Elementebenen, um Ebenen hinzuzufügen oder zu entfernen.
Klicken Sie auf Speichern, um Ihre Änderungen zu speichern und für Ihre Karten verfügbar zu machen.
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 beim Initialisieren der Karte mapView.featureLayer(of:)
auf:
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
abonnieren. 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