Navigation SDK per Android 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 navigazione specifici. Puoi eseguire il routing verso posizioni precise utilizzando un navigationPointToken o combinando le coordinate di latitudine e longitudine con un ID luogo per un contesto aggiuntivo. La funzionalità di evidenziazione della destinazione continuerà a essere eseguita, se applicabile.
Sfondo
Prima della versione 7.4, potevi definire un Waypoint utilizzando le coordinate di latitudine e longitudine 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 prelievo non ottimali, in particolare per sedi di grandi dimensioni, parchi o edifici con più ingressi. Il risultato potrebbe allinearsi al segmento stradale più vicino, che potrebbe non essere il punto di navigazione più comodo o corretto.
Le opzioni avanzate dei waypoint risolvono questo problema consentendo di fornire più contesto.
Utilizzare un token del punto di navigazione
Per un routing più preciso verso punti di navigazione specifici come ingressi, banchine di carico o aree di prelievo 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
navigationPointTokendal metodo Destinations della risposta dell'API Geocoding. - Crea un
Waypointutilizzando il metodosetNavigationPointToken()nel builder.
Nota: quando utilizzi setNavigationPointToken(), non puoi utilizzare contemporaneamente setLatLng() o setPlaceIdString(). Questi metodi si escludono a vicenda con setNavigationPointToken().
// 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()
Combinare l'ID luogo con la latitudine e la longitudine
A partire dalla versione 7.4, puoi fornire sia un ID luogo sia le coordinate di latitudine e longitudine quando crei un Waypoint. Questo metodo è utile quando vuoi specificare un punto preciso (lat/lng) fornendo comunque il contesto del luogo complessivo (l'ID luogo). In questo modo, Navigation SDK può fornire un'esperienza di arrivo più completa evidenziando l'edificio di destinazione o mostrando i punti di interesse nelle vicinanze correlati all'ID luogo.
// 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()
Considerazioni
Quando fornisci sia placeId sia latlng:
- Il percorso ha come target principale il
latlngspecificato. - Il
placeIdviene utilizzato come contesto per migliorare l'esperienza di arrivo. - Fallback: se l'SDK determina che il
placeIdfornito corrisponde a una funzionalità troppo lontana dallatlngspecificato, ilplaceIdverrà ignorato. In questo scenario, il routing procederà solo allatlnge i miglioramenti dell'esperienza di arrivo specifici per il luogo non saranno disponibili.
Riepilogo delle configurazioni dei waypoint valide
| Metodo | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Comportamento di routing | Evidenziazione della destinazione |
|---|---|---|---|---|---|
| Solo coordinate di latitudine/longitudine | 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 di latitudine/longitudine e ID luogo combinati | imposta | 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 |