Percorso verso i punti di navigazione

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:

  1. Ottieni un navigationPointToken dalla risposta del metodo Destinations dell'API Geocoding.

  2. Specifica navigationPointToken quando crei un GMSNavigationWaypoint.

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 location specificata.
  • placeId viene utilizzato come contesto per migliorare l'esperienza di arrivo.
  • Fallback: se l'SDK determina che il placeId fornito corrisponde a una funzionalità troppo lontana dalla location specificata, placeId verrà ignorato. In questo scenario, il routing procederà solo verso la location e 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