Das Navigation SDK for iOS bietet erweiterte Möglichkeiten zum Angeben von Wegpunkten oder Navigationspunkten. So können genauere Routen berechnet und die Ankunft am Zielort verbessert werden, insbesondere bei Zielen mit mehreren Eingängen oder bestimmten Navigationspunkten. Sie können mit einem navigationPointToken zu genauen Standorten navigieren. Dabei handelt es sich um einen String, der einen Standort und zusätzlichen Routenkontext codiert. Sie können auch Breiten- und Längengradkoordinaten mit einer Orts-ID kombinieren, um zusätzlichen Kontext zu erhalten.
Hintergrund
Vor Version 10.10 konnten Sie einen Waypoint entweder mit Standortkoordinaten oder einer Orts-ID definieren. Das Routing 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 Zugangspunkt sein muss.
Mit den erweiterten Wegpunktoptionen können Sie mehr Kontext angeben.
Navigationspunkt-Token verwenden
Für das genaueste Routing zu bestimmten Zugangspunkten 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 Geocoding API für die Methode „Destinations“ ab.Geben Sie dieses
navigationPointTokenan, wenn Sie einGMSNavigationWaypointerstellen.
Hinweis:Sie können nicht gleichzeitig ein Navigationspunkt-Token zusammen mit einem Standort und einer Orts-ID angeben.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"
Navigationspunkt- und Routentokens verwenden
Sie können ein Navigationspunkt-Token über die Geocoding API und ein Routentoken über die Routes API abrufen und dann sowohl das Navigationspunkt- als auch das Routentoken an das Navigation SDK übergeben. Das ist in Szenarien wie Mitfahrdiensten oder Lieferdiensten nützlich, in denen Sie mit der Routes API einen Fahrpreis berechnen und die Genauigkeit eines Navigationspunkt-Tokens nutzen möchten.
Das Routentoken beeinflusst die vom Navigation SDK ausgewählte Route in Richtung der Route, die für die Preisberechnung verwendet wurde. So wird das Risiko verringert, dass für die Fahrt längere oder kürzere Routen verwendet werden, was zu „Preisschocks“ führen kann.
Weitere Informationen zum Angeben eines Standorts mit einem Navigationspunkt-Token und Erstellen eines Routen-Tokens finden Sie in der API-Dokumentation zur Routes API. Unter "Route planen" erfahren Sie, wie Sie eine Route mit einem Routentoken planen.
In diesem Diagramm wird gezeigt, wie eine Mitfahr- oder Lieferdienst-App Navigationspunkt- und Routentokens zusammen verwendet:
Orts-ID und Standort kombinieren
Ab Version 10.10 können Sie beim Erstellen eines Wegpunkts sowohl eine Orts-ID als auch Standortkoordinaten angeben. Diese Methode ist nützlich, wenn Sie einen genauen Punkt (den Standort) angeben und gleichzeitig den Kontext des gesamten Ortes (die Orts-ID) bereitstellen möchten. So kann das Navigation SDK die Ankunft am Zielort verbessern, indem es das Zielgebäude hervorhebt oder nahe gelegene Points of Interest anzeigt, die mit der Orts-ID verknüpft sind.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
Wichtige Hinweise:
Wenn Sie sowohl placeID als auch location angeben:
- Die Route zielt hauptsächlich auf den angegebenen
locationab. - Die
placeIdwird als Kontext verwendet, um die Ankunft am Zielort zu verbessern. - Fallback:Wenn das SDK feststellt, dass die angegebene
placeIdeinem Ort entspricht, der zu weit vom angegebenenlocationentfernt ist, wird dieplaceIdignoriert. In diesem Fall wird die Route nur zumlocationberechnet und die ortsspezifischen Verbesserungen für die Ankunft am Zielort sind nicht verfügbar.
Zusammenfassung der gültigen Wegpunktkonfigurationen
| Spezifikation | location |
placeID |
navigationPointToken |
Routingverhalten | Zielort hervorheben |
|---|---|---|---|---|---|
| Nur Standortkoordinaten | 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 |
| Standortkoordinaten 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 |