L'SDK Navigation per iOS offre modi avanzati per specificare i waypoint, fornendo
un routing più preciso e una migliore esperienza di arrivo, in particolare per
le destinazioni con più ingressi o punti di accesso specifici. Puoi eseguire il routing verso
posizioni precise utilizzando un navigationPointToken o combinando le coordinate della posizione
con un ID luogo per un contesto aggiuntivo.
La funzionalità di evidenziazione della destinazione continuerà a essere eseguita, se applicabile.
Sfondo
Prima della versione 10.10, potevi definire un Waypoint utilizzando le coordinate della posizione
o un ID luogo. Sebbene a volte efficace, il routing esclusivamente verso una
latitudine e una longitudine può a volte portare a punti di discesa o di ritiro non ottimali,
in particolare per grandi sedi, parchi o edifici con più
ingressi. Il risultato potrebbe essere agganciato al segmento stradale più vicino, che potrebbe non essere
il punto di accesso più comodo o corretto.
Le opzioni avanzate per i waypoint risolvono questo problema consentendoti di fornire più contesto.
Utilizzare un token del punto di navigazione
Per un routing più preciso verso punti di accesso specifici come ingressi, banchine di carico
o aree di ritiro designate, puoi utilizzare un navigationPointToken.
Questo token viene ottenuto chiamando il metodo Destinations dell'API Geocoding. Rappresenta un punto di navigazione specifico e instradabile associato a un luogo.
Per specificare un token del punto di navigazione:
Ottieni un
navigationPointTokendalla risposta del metodo Destinations dell'API Geocoding.Specifica
navigationPointTokenquando crei unGMSNavigationWaypoint.
Nota: non puoi specificare contemporaneamente un token del punto di navigazione insieme a una località e a un ID luogo.
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"
Combinare ID luogo e località
A partire dalla versione 10.10, puoi fornire sia un ID luogo sia le coordinate della posizione quando crei un waypoint. Questo metodo è utile quando vuoi specificare un punto preciso (la località) fornendo al contempo il contesto del luogo complessivo (l'ID luogo). In questo modo, l'SDK Navigation può offrire un'esperienza di arrivo più ricca evidenziando l'edificio di destinazione o mostrando i punti di interesse nelle vicinanze correlati all'ID luogo.
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"];
Considerazioni:
Quando fornisci sia placeID sia location:
- Il percorso ha come target principale la
locationspecificata. placeIdviene utilizzato come contesto per migliorare l'esperienza di arrivo.- Fallback: se l'SDK determina che il
placeIdfornito corrisponde a una funzionalità troppo lontana dallalocationspecificata,placeIdverrà ignorato. In questo scenario, il routing procederà solo verso lalocatione i miglioramenti dell'esperienza di arrivo specifici per il luogo non saranno disponibili.
Riepilogo delle configurazioni dei waypoint validi
| Specifica | location |
placeID |
navigationPointToken |
Comportamento di routing | Evidenziazione della destinazione |
|---|---|---|---|---|---|
| Solo coordinate della posizione | imposta | assente | assente | Esegue il routing al segmento stradale più vicino alle coordinate definite | Mostrato se la destinazione può essere dedotta con un'alta affidabilità |
| Solo ID luogo | assente | imposta | assente | Esegue il routing al punto di navigazione predefinito per l'ID luogo | Dall'ID luogo |
| Solo token del punto di navigazione | assente | assente | imposta | Esegue il routing al punto di navigazione preciso rappresentato dal token | Dalla destinazione definita nel metodo Destinations originale della richiesta dell'API Geocoding |
| Coordinate della posizione e ID luogo combinati | se | imposta | assente | Esegue il routing al segmento stradale più vicino alle coordinate definite | Dall'ID luogo, anche se non viene mostrato se l'ID luogo è troppo lontano dalle coordinate di latitudine/longitudine |