L'SDK Navigation per Android offre modi avanzati per specificare i waypoint,
fornendo un routing più preciso e una migliore esperienza di arrivo, soprattutto per
le destinazioni con più ingressi o punti di accesso specifici. Puoi raggiungere
posizioni precise utilizzando un navigationPointToken o combinando
le coordinate di latitudine e longitudine con un ID luogo per un contesto più completo. La funzionalità
di evidenziazione della destinazione continuerà a essere eseguita, se applicabile.
Sfondo
Prima della versione 7.4, era possibile definire un Waypoint utilizzando le coordinate di latitudine e longitudine o un ID luogo. Sebbene efficace per la maggior parte dei casi d'uso, l'instradamento
solo a una latitudine e una longitudine a volte può portare a punti di partenza o
arrivo non ottimali, in particolare per grandi sedi, parchi o edifici con più
ingressi. Il risultato potrebbe agganciarsi 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 consentendo di fornire più contesto.
Combinare ID luogo, latitudine e 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 (latitudine/longitudine) fornendo comunque il contesto del
luogo complessivo (l'ID luogo). In questo modo, l'SDK Navigation può offrire un'esperienza di arrivo più ricca mettendo in evidenza l'edificio della destinazione o mostrando punti d'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 che latlng:
- La route ha come target principale il
latlngspecificato. placeIdviene utilizzato come contesto per migliorare l'esperienza di arrivo.- Fallback:se l'SDK determina che
placeIdfornito corrisponde a una funzionalità troppo distante dalatlngspecificato,placeIdverrà ignorato. In questo scenario, il percorso proseguirà solo fino alatlnge i miglioramenti dell'esperienza di arrivo specifici per il luogo non saranno disponibili.
Utilizzare un token punto di navigazione
Per un percorso 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 punto di navigazione:
- Ottieni un
navigationPointTokendalla risposta del metodo Destinations 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()
Riepilogo delle configurazioni di waypoint valide
| Metodo | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Comportamento di routing | Evidenziazione della destinazione |
|---|---|---|---|---|---|
| Solo LatLng | imposta | assente | assente | Percorsi per il segmento di strada più vicino alle coordinate definite | No |
| Solo ID luogo | assente | imposta | assente | Percorsi verso il punto di accesso predefinito per l'ID luogo | Da PlaceID |
| Solo token punto di navigazione | assente | assente | imposta | Percorsi verso il punto di accesso esatto rappresentato dal token | Dalla destinazione definita nel metodo destinations originale dell'API Geocoding |
| LatLng e ID luogo combinati | imposta | imposta | assente | Percorsi per il segmento di strada più vicino alle coordinate definite | Da PlaceID, anche se non viene mostrato se PlaceID è troppo lontano da LatLng |