Karten-IDs verwenden

Eine Karten-ID ist eine Kennung, die einem bestimmten Kartenstil oder -element zugeordnet ist. In der Google Cloud Console können Sie einen Kartenstil konfigurieren und ihn mit einer Karten-ID verknüpfen. Wenn Sie dann in Ihrem Code auf eine Karten-ID verweisen, wird der verknüpfte Kartenstil in Ihrer App angezeigt. Bei allen folgenden Aktualisierungen des Stils wird in Ihrer App automatisch der neue Stil verwendet, ohne dass Ihre Kunden Änderungen vornehmen müssen.

Bei der Erstellung werden Karten-IDs mit einem Projekt verknüpft. Sie sind außerdem auf eine einzelne Plattform (Android, iOS, JavaScript) oder auf die Maps Static API beschränkt.

Zum Erstellen oder Verwalten von Karten-IDs in der Cloud Console benötigst du die IAM-Rolle „Projektinhaber“ oder „Projektbearbeiter“.

Erforderliche Berechtigungen

Zum Erstellen oder Verwalten von Karten-IDs oder ‐stilen in einem bestimmten Google Cloud-Projekt musst du entweder die IAM-Rolle „Inhaber“ oder „Bearbeiter“ für das Projekt haben.

Karten-ID erstellen

Eine Karten-ID ist eine eindeutige Kennung, die eine einzelne Instanz einer Google Maps-Karte darstellt. Du kannst jederzeit in der Cloud Console Karten-IDs erstellen und einen mit einer Karten-ID verknüpften Stil ändern.

So erstellen Sie eine Karten-ID:

  1. Rufe in der Cloud Console die Seite Kartenverwaltung auf.
  2. Wähle Neue Karten-ID erstellen aus, um das Formular Neue Karten-ID erstellen aufzurufen.
    Neue Karten-ID erstellen

    Im Formular

    • gibst du einen Kartennamen ein,
    • gibst du einen Kartentyp oder eine Plattform an,
    • wählst du – für JavaScript-Karten – den Typ „Rasterkarte“ oder „Vektorkarte“ aus,
    • geben Sie eine Beschreibung der Karte ein und
    • Wählen Sie Weiter aus, um die neue Karten-ID aufzurufen.

Karten-ID mit einem Kartenstil verknüpfen

In dieser Anleitung wird davon ausgegangen, dass in deinem Projekt mindestens ein Kartenstil vorhanden ist.

  1. Rufe in der Cloud Console die Seite Kartenverwaltung auf.
  2. Wählen Sie auf dieser Seite eine vorhandene Karten-ID in der Spalte Kartenname aus.
  3. Wähle unten in diesem Formular einen Kartenstil aus dem Drop-down-Menü Mit dieser Karten-ID verknüpfte Kartenstile aus.
  4. Klicken Sie auf Speichern.
    Screenshot mit der Detailseite für eine einzelne Karten-ID, einschließlich des Drop-down-Felds, über das Nutzer einen Kartenstil mit dieser Karten-ID verknüpfen können

Karten-ID in App einbinden

Android

Du kannst deine Karten-ID mit einem <fragment>-Element in der Layoutdatei der Aktivität über die Klasse MapView oder programmatisch über die Klasse GoogleMapOptions hinzufügen.

Angenommen, Sie haben eine Karten-ID erstellt, die als Stringwert map_id in res/values/strings.xml gespeichert ist:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">YOUR_MAP_ID</string>
</resources>

Bei Karten, die über ein <fragment>-Element in der Layoutdatei der Aktivität hinzugefügt werden, muss für alle Kartenfragmente, die den benutzerdefinierten Stil haben sollen, die Karten-ID im Attribut map:mapId angegeben werden:

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
    class="com.google.android.gms.maps.SupportMapFragment"
    …
    map:mapId="@string/map_id" />

Sie können auch das Attribut map:mapId der Klasse MapView verwenden, um eine Karten-ID anzugeben:

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    ....
    map:mapId="@string/map_id" />

Wenn Sie eine Karten-ID programmatisch angeben möchten, übergeben Sie sie mithilfe der Klasse GoogleMapOptions an eine MapFragment-Instanz:

Java

 MapFragment mapFragment = MapFragment.newInstance(
     new GoogleMapOptions()
         .mapId(getResources().getString(R.string.map_id)));

Kotlin

 val mapFragment = MapFragment.newInstance(
     GoogleMapOptions()
         .mapId(resources.getString(R.string.map_id))
 )

Erstelle wie gewohnt deine App in Android Studio und führe sie aus. Benutzerdefinierte Stile, wie im ersten Schritt konfiguriert, werden auf alle Karten mit einer ID angewendet.

iOS

So instanziieren Sie eine Karte mit einer Karten-ID:

  1. Erstelle eine GMSMapID mit dem Karten-ID-String in der Cloud Console.
  2. Erstelle ein GMSMapView, das die soeben erstellte Karten-ID angibt.

Swift

let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: "<YOUR MAP ID>")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: camera)
self.view = mapView

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.0169
                                                        longitude:-122.336471
                                                             zoom:12];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"<YOUR MAP ID>"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;

Wenn Sie Ihre eigene Karten-ID verwenden, können Sie jederzeit einen neuen Stil für die Karten-ID in der Cloud Console festlegen. Dieser wird dann automatisch für Sie und Nutzer in etwa sechs Stunden übernommen.

Wenn Sie die Änderungen sofort sehen möchten, können Sie Ihre App schließen und neu starten. Beenden Sie dazu die App, erzwingen Sie das Beenden der App in der Liste der kürzlich verwendeten Apps und öffnen Sie sie dann wieder. Die aktualisierte Karte ist dann sichtbar.

JavaScript

So erstellen Sie eine Karte mit einer Karten-ID in Ihrem Anwendungscode:

  1. Wenn du deine Karte derzeit mit eingebetteten JSON-Code bearbeitest, entferne das styles-Attribut aus deinem MapOptions-Objekt. Andernfalls kannst du diesen Schritt überspringen.

  2. Fügen Sie mit der Property mapId eine Karten-ID in die Karte ein. Beispiel:

map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8,
mapId: 'MAP_ID'
});

Maps Static

Wenn Sie eine Karten-ID zu einer neuen oder vorhandenen Karte hinzufügen möchten, die eine unserer Web-Dienst-APIs verwendet, hängen Sie den URL-Parameter map_id an und legen Sie ihn auf Ihre Karten-ID fest. In diesem Beispiel wird gezeigt, wie Sie über die Maps Static API eine Karten-ID in eine Karte einfügen.

<img src="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Clabel:C%7C40.718217,-73.998284&key=YOUR_API_KEY&map_id=YOUR_MAP_ID&signature=YOUR_SIGNATURE" />

Eine Karte mit dem Mittelpunkt der Brooklyn Bridge in New York City, NY, USA, unten auf der Seite Auf der Karte werden individuelle Stile für Straßen, Gewässer und Land angezeigt.

Wenn Ihre statische Karten-URL eine digitale Signatur enthält, bevor Sie die Karten-ID hinzufügen, müssen Sie eine neue digitale Signatur erstellen und hinzufügen. Vergiss beim Generieren deines neuen URL-Signatur-Secret nicht, deine vorherige digitale Signatur aus der URL zu entfernen.

Funktionen bei Verwendung von Karten-IDs

Cloudbasiertes Gestalten von Karteninhalten: Sie können Karten in der Google Cloud Console gestalten, anpassen und verwalten.
Verfügbar auf allen Plattformen (Android, JavaScript, iOS und Maps Static API)

Vektorkarten: Eine Karte mit vektorbasierten Kacheln, die beim Laden auf der Clientseite mit WebGL gezeichnet werden.
Für JavaScript verfügbar