Das Navigation SDK for Android bietet erweiterte Möglichkeiten zum Festlegen von Wegpunkten. So können genauere Routen berechnet und die Ankunft besser gestaltet werden, insbesondere bei Zielen mit mehreren Eingängen oder bestimmten Navigationspunkten. Sie können Routen zu genauen Standorten berechnen lassen, indem Sie ein navigationPointToken verwenden oder Breiten- und Längengradkoordinaten mit einer Orts-ID kombinieren, um zusätzlichen Kontext zu liefern. Die Funktion zum Hervorheben des Ziels wird gegebenenfalls weiterhin ausgeführt.
Hintergrund
Vor Version 7.4 konnten Sie einen Waypoint entweder mit Breiten- und Längengradkoordinaten oder mit einer Orts-ID definieren. Die Routenberechnung nur anhand von Breiten- und Längengraden kann manchmal zu suboptimalen Absetz- oder Abholpunkten führen, insbesondere bei großen Veranstaltungsorten, Parks oder Gebäuden mit mehreren Eingängen. Das Ergebnis wird möglicherweise an das nächstgelegene Straßensegment angeglichen, das nicht der günstigste oder korrekte Navigationspunkt sein muss.
Die erweiterten Wegpunktoptionen ermöglichen es, mehr Kontext bereitzustellen.
Navigationspunkt-Token verwenden
Für die genaueste Routenberechnung zu bestimmten Navigationspunkten wie Eingängen, Laderampen oder ausgewiesenen Abholbereichen können Sie ein navigationPointToken verwenden. Dieses Token wird durch Aufrufen der Methode „destinations
“ der Geocoding
API abgerufen. Es stellt einen bestimmten, routenfähigen Navigationspunkt dar, der mit einem Ort verknüpft ist.
So geben Sie ein Navigationspunkt-Token an:
- Rufen Sie ein
navigationPointTokenaus der Antwort der Methode „destinations“ der Geocoding API ab. - Erstellen Sie mit der Methode
setNavigationPointToken()im Builder einenWaypoint.
Hinweis:Wenn Sie setNavigationPointToken() verwenden, können Sie nicht gleichzeitig setLatLng() oder setPlaceIdString() verwenden. Diese Methoden schließen sich gegenseitig mit setNavigationPointToken() aus.
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
Orts-ID und Breiten- und Längengrad kombinieren
Ab Version 7.4 können Sie beim Erstellen eines Waypoint sowohl eine Orts-ID als auch Breiten- und Längengradkoordinaten angeben. Diese Methode ist nützlich, wenn Sie einen genauen Punkt (Breiten-/Längengrad) angeben und gleichzeitig den Kontext des gesamten Ortes (die Orts-ID) liefern möchten. So kann das Navigation SDK die Ankunft besser gestalten, indem es das Zielgebäude hervorhebt oder nahe gelegene Points of Interest anzeigt, die mit der Orts-ID verknüpft sind.
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
Hinweise
Wenn Sie sowohl placeId als auch latlng angeben:
- Die Route zielt in erster Linie auf den angegebenen
latlngab. - Die
placeIdwird als Kontext verwendet, um die Ankunft zu verbessern. - Fallback:Wenn das SDK feststellt, dass die angegebene
placeIdeinem Ort entspricht, der zu weit vom angegebenenlatlngentfernt ist, wird dieplaceIdignoriert. In diesem Fall wird die Route nur zumlatlngberechnet und die ortsspezifischen Verbesserungen für die Ankunft sind nicht verfügbar.
Zusammenfassung der gültigen Wegpunktkonfigurationen
| Methode | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Routingverhalten | Ziel hervorheben |
|---|---|---|---|---|---|
| Nur Breiten-/Längengradkoordinaten | set | nicht vorhanden | nicht vorhanden | Route zum Straßensegment, das den definierten Koordinaten am nächsten liegt | Wird angezeigt, wenn das Ziel mit hoher Wahrscheinlichkeit abgeleitet werden kann |
| Nur Orts-ID | nicht vorhanden | set | nicht vorhanden | Route zum Standardnavigationspunkt für die Orts-ID | Aus Orts-ID |
| Nur Navigationspunkt-Token | nicht vorhanden | nicht vorhanden | set | Route zum genauen Navigationspunkt, der durch das Token dargestellt wird | Aus dem Ziel, das in der ursprünglichen Methode „destinations“ der Geocoding API-Anfrage definiert wurde |
| Breiten-/Längengradkoordinaten und Orts-ID kombiniert | set | set | nicht vorhanden | Route zum Straßensegment, das den definierten Koordinaten am nächsten liegt | Aus Orts-ID, wird aber nicht angezeigt, wenn die Orts-ID zu weit von den Breiten-/Längengradkoordinaten entfernt ist |