Maps SDK for Android-Dienstprogrammbibliothek

Plattform auswählen: Android iOS

Sie möchten erweiterte Funktionen für Ihre Karten implementieren? Die Maps SDK for Android-Dienstprogrammbibliothek ist eine Open-Source-Bibliothek mit Klassen, die für eine Reihe von Anwendungen nützlich sind. Das GitHub-Repository enthält die Dienstprogrammklassen und eine Demo-App, in der die Verwendung der einzelnen Klassen gezeigt wird.

In diesem Video erörtert Chris Broadfoot die Dienstprogrammbibliothek. Schwerpunktthemen sind dabei die Decodierung von Polylinien, sphärische Geometrie und Infofeldsymbole.

Schnelleinrichtung

Ein Installationsanleitung finden Sie unter Maps SDK for Android-Dienstprogramm einrichten.

Die Dienstprogramme

Eine Karte mit einer GeoJSON-Ebene

GeoJSON in Ihre Karte importieren

Sie können Elemente im GeoJSON-Format speichern und sie mit diesem Dienstprogramm als Ebene über einer Karte rendern. Rufen Sie addLayer() auf, um Ihre GeoJSON-Daten der Karte hinzuzufügen. Außerdem haben Sie die Möglichkeit, einzelne Elemente hinzuzufügen, indem Sie addFeature() aufrufen und ein GeoJsonFeature-Objekt übergeben.

Weitere Informationen finden Sie in der Dokumentation zum Google Maps Android GeoJSON-Dienstprogramm.

Eine Karte mit einer KML-Ebene

KML in Ihre Karte importieren

Mit diesem Dienstprogramm können Sie KML-Objekte in geografische Formen umwandeln und als Ebene über einer Karte rendern. Rufen Sie addLayerToMap() auf, um die Ebene der Karte hinzuzufügen. Um auf die Eigenschaften eines KML-Objekts zuzugreifen, rufen Sie getProperties() für eine Ortsmarkierung, ein Boden-Overlay, ein Dokument oder einen Ordner auf.

Weitere Informationen finden Sie in der Dokumentation zum Google Maps-Dienstprogramm für den KML-Import.

Eine Karte mit einer Heatmap

Heatmaps zu einer Karte hinzufügen

Mit Heatmaps können Nutzer die Verteilung und relative Intensität von Datenpunkten auf einer Karte leichter erkennen. Statt eine Markierung an jedem Standort zu platzieren, verwenden Heatmaps Farben und Formen, um die Verteilung von Daten darzustellen. Erstellen Sie einen HeatmapTileProvider und übergeben Sie eine Sammlung von LatLng-Objekten, die POIs auf der Karte darstellen. Erstellen Sie dann ein neues TileOverlay, übergeben Sie den Heatmap-Kachelanbieter und nehmen Sie das Kachel-Overlay in die Karte auf.

Weitere Informationen finden Sie in der Dokumentation zum Google Maps Android Heatmap-Dienstprogramm.

Eine Karte mit Infofeldsymbolen

Markierung mithilfe von Infofeldsymbolen anpassen

Fügen Sie einen IconGenerator hinzu, um Snippets mit Informationen für Ihre Markierungen anzuzeigen. Dieses Dienstprogramm bietet eine Möglichkeit, Markierungssymbole ähnlich wie Infofenster zu gestalten, und zwar so, dass die Markierung auch selbst Text und andere Inhalte enthalten kann. Der Vorteil besteht darin, dass mehrere Markierungen gleichzeitig geöffnet sein können, im Unterschied zu Infofenstern, von denen immer nur eines angezeigt werden kann. Sie können Markierungen außerdem mit einem Stil versehen, ihre Ausrichtung und/oder Inhalte ändern und ihr Hintergrundbild (9-Patch-Datei) ersetzen.

Markierungs-Cluster auf einer Karte

Markierungs-Cluster verwalten

Mit ClusterManager können Sie mehrere Markierungen bei verschiedenen Zoomfaktoren verwalten. Sie können also eine große Anzahl Markierungen auf einer Karte setzen, ohne die Lesbarkeit der Karte zu stark zu beeinträchtigen. Wenn ein Nutzer die Karte mit einer hohen Zoomstufe ansieht, werden die einzelnen Markierungen auf der Karte angezeigt. Zoomt er heraus, werden die Markierungen zu Clustern zusammengefügt, damit sich die Karte besser betrachten lässt.

Weitere Informationen finden Sie in der Dokumentation zum Markierungs-Clustering-Dienstprogramm in Google Maps Android.

Eine Karte mit mehreren Ebenen

Einer Karte mehrere Ebenen hinzufügen

Neben Elementen aus GeoJSON, KML und Clustern können Sie auch eigene Markierungen, Polylinien und Polygone auf einer Karte anzeigen. Die entsprechenden Ebenen lassen sich interaktiv gestalten. Dazu wird jeder Ebene ein Klick-Listener hinzugefügt. Instanziieren Sie einfach die Klassen MarkerManager, GroundOverlayManager, PolygonManager und PolylineManager und übergeben Sie sie bei der Einrichtung an die Konstruktoren von GeoJsonLayer, KmlLayer und ClusterManager. Anschließend können Sie die oben genannten Manager-Klassen direkt verwenden, um der Karte eigene Markierungen, Polylinien und Polygone hinzuzufügen.

Weitere Informationen finden Sie in der Dokumentation zum Dienstprogramm für mehrere Ebenen in Google Maps.

Eine codierte Polylinie auf einer Karte

Polylinien codieren und decodieren

PolyUtil ist nützlich, um codierte Polylinien und Polygone in Breiten- und Längengradkoordinaten zu konvertieren und umgekehrt.

In Google Maps werden Breiten- und Längengrade zur Definition von Polylinien und Polygonen als codierter String gespeichert. Ausführliche Informationen finden Sie unter Algorithmusformat für codierte Polylinien. Dieser codierte String kann in einer Antwort von einer Google API zurückgegeben werden, z. B. der Directions API.

Sie können PolyUtil in der Maps SDK for Android-Dienstprogrammbibliothek verwenden, um eine Folge von Breiten- und Längengradkoordinaten ('LatLngs') in einen codierten Pfadstring zu codieren und umgekehrt einen codierten Pfadstring in eine Folge von Breiten- und Längengradkoordinaten zu decodieren. Auf diese Weise wird die Interoperabilität mit den Webdiensten der Google Maps APIs sichergestellt.

Berechnete Entfernung zwischen zwei Punkten auf einer Karte

Entfernungen, Bereiche und Richtungen über sphärische Geometrie berechnen

Mit den Dienstprogrammen für sphärische Geometrie in SphericalUtil lassen sich Entfernungen, Flächen und Ausrichtungen anhand von Breiten- und Längengraden berechnen. Im Dienstprogramm sind u. a. folgende Methoden verfügbar:

  • computeDistanceBetween(): gibt die Entfernung zwischen zwei Breiten- und Längengradkoordinaten in Metern zurück
  • computeHeading(): gibt die Neigung zwischen zwei Breiten- und Längengradkoordinaten in Grad zurück
  • computeArea(): Gibt die Fläche eines geschlossenen Pfads auf der Erde in Quadratmetern zurück
  • interpolate(): Gibt die Breiten-/Längengrad-Koordinaten eines Punkts zurück, der an einem bestimmten Bruchteil der Entfernung zwischen zwei angegebenen Punkten liegt. Mit dieser Methode lässt sich beispielsweise eine Markierung zwischen zwei Punkten animieren.

Eine vollständige Liste der Methoden im Dienstprogramm finden Sie in der Referenzdokumentation.

Prüfen, ob Street View-Daten für einen Standort verfügbar sind

Prüfen, ob Street View-Daten für einen Standort verfügbar sind

Mit der Klasse StreetViewUtil lässt sich prüfen, ob ein Standort in Street View unterstützt wird. Sie können Fehler beim Hinzufügen von Street View-Panoramen vermeiden, indem Sie dieses Metadaten-Dienstprogramm aufrufen und ein Panorama nur dann zu einer Android-App hinzufügen, wenn das Dienstprogramm als Antwort OK zurückgibt.

Weitere Informationen finden Sie in der Dokumentation zum Dienstprogramm für Street View-Metadaten auf GitHub.