A volte potresti voler pianificare il percorso che l'app fornisce ai conducenti. L'utilizzo di un token di route dell'API Routes (o dell'API Routes Preferred) può aiutarti a specificare due aspetti per la route pianificata:
Una polilinea del percorso
Obiettivi del percorso
Ad esempio, di seguito sono riportati alcuni esempi di obiettivi di routing che potresti avere:
Riduci al minimo i tempi di consegna: un'attività che consegna cibo potrebbe voler ridurre al minimo il tempo necessario per consegnare il cibo.
Riduci al minimo i tempi di percorrenza o il consumo di carburante: un'attività di logistica potrebbe voler migliorare l'efficienza dei propri conducenti e ridurre i costi del carburante.
Riduci al minimo il tempo necessario per raggiungere la destinazione: un'operazione di invio di un servizio potrebbe voler ridurre al minimo il tempo necessario per far arrivare gli operatori a una richiesta di job.
Ridurre i costi e migliorare la sicurezza: un'attività di ride sharing potrebbe voler trovare un percorso che costa meno per i passeggeri ed eviti determinate aree per motivi di sicurezza.
Per ulteriori informazioni sulla pianificazione di un percorso utilizzando un token di percorso, consulta Richiedere un token di percorso.
Perché utilizzare un token di route per gli scopi del percorso
Con un token di route dell'API Routes Preferred, hai un maggiore controllo sulla route fornita:
Pianifica in anticipo un percorso affinché l'SDK di navigazione utilizzi quando possibile.
Scegli il percorso migliore da utilizzare per l'SDK di navigazione. Se richiedi token di route durante la generazione di route nell'API Routes, ricevi un token di route per ogni route generata. Puoi quindi scegliere il token per la route da utilizzare quando lo trasmetti all'SDK di navigazione.
Stima il prezzo in anticipo, incluse le stime relative all'orario di arrivo stimato e alla distanza. Sebbene il costo effettivo e il tempo possano variare, questa stima riduce il divario tra il costo del percorso previsto e quello effettivo.
Specificare obiettivi di route più avanzati, come il routing Eco o il percorso più breve.
Come funzionano i token di route dell'API Routes
Puoi utilizzare l'API Routes o l'API Routes Preferred per pianificare una route utilizzando i relativi obiettivi. L'API Routes restituisce un token di percorso che puoi passare all'SDK di navigazione per indicare il percorso del veicolo.
Ecco cosa succede quando richiedi e utilizzi un token di route dall'API Routes:
L'API Routes restituisce un token di route criptato che include la polilinea della route e gli obiettivi delle route.
Il token del percorso viene trasferito all'SDK di navigazione.
L'SDK di navigazione recupera il percorso oppure, se il percorso non è disponibile a causa di condizioni variabili, recupera il percorso corrispondente migliore.
Durante il percorso, se il traffico o altre condizioni della strada cambiano o se un veicolo devia dal percorso pianificato, i percorsi modificati tentano continuamente di abbinare il percorso migliore in base agli obiettivi del percorso nel token.
Questo processo massimizza la vicinanza del percorso effettivo al percorso pianificato.
Perché un percorso pianificato potrebbe non essere seguito esattamente
Considera gli obiettivi di percorso e percorso pianificati come linee guida da seguire: non sono prescrittivi. Potresti notare una differenza tra il percorso pianificato e quello fornito dalla navigazione guidata a causa di differenze nelle condizioni della strada, nella posizione di partenza o altri parametri che sono cambiati da quando hai creato il percorso pianificato. Questa differenza potrebbe determinare una mancata corrispondenza tra gli obiettivi pianificati e quelli effettivi per la distanza e l'orario di arrivo stimato, oltre ad altre importanti qualità di viaggio.
Pianificare una route utilizzando un token di route
Puoi pianificare una route creando un token di route e passandolo all'SDK di navigazione, come descritto nei passaggi seguenti:
Passaggio 1: crea un token di route utilizzando l'API Routes preferita per Routes o Routes
Richiedi un token di route con uno dei seguenti metodi:
API Routes:
computeRoutes
. Per ulteriori informazioni sulla richiesta di un token di route nell'API Routes, consulta Calcolare una route e Richiedere un token di route.API Routes Preferred:
computeCustomRoutes
. Per ulteriori informazioni sulla richiesta di un token di route nell'API Routes Preferred, consulta Pianificare una route.
Configura la richiesta di route in modo da soddisfare i requisiti per l'utilizzo di un token di route:
- Imposta
travel_mode
suDRIVING
- Imposta
routing_preference
suTRAFFIC_AWARE
oTRAFFIC_AWARE_OPTIMAL
- NON utilizzare Tramite tappe
- Imposta
Passaggio 2: passa il token del percorso all'SDK di navigazione
Archivia il token di percorso: nell'SDK di navigazione, imposta una stringa per archiviare il token di percorso. Ad esempio:
let routeToken = "route token returned by Routes API"
Esempio di token di route restituito:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
Trasmetti il token di route all'SDK di navigazione utilizzando il metodo
mapView.navigator setDestinations
, specificando gli stessi Waypoint di destinazione utilizzati durante la creazione del token di route:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Il metodo Navigator.setDestinations
restituisce lo stato della richiesta.
Se viene trovata una route dalla posizione dell'utente alla destinazione specificata,
restituisce RouteStatus.OK
.
Per ulteriori informazioni su questo metodo, vedi Navigator.setDestinations
.
Esempio
I seguenti esempi di codice mostrano come recuperare un percorso pianificato.
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";
[mapView.navigator setDestinations:@[waypoint1, waypoint2]
routeToken:routeToken
callback:^(GMSRouteStatus routeStatus){...}];
Interazione tra i token di route e l'SDK di navigazione
Ecco come interagiscono il percorso generato dall'SDK di navigazione e il percorso pianificato nel token di percorso:
Sostituisce tutte le destinazioni impostate in precedenza.
Usa il luogo di partenza del veicolo.
Si regola in base alle condizioni della strada e del traffico. Consulta la sezione Perché un percorso pianificato potrebbe non essere seguito esattamente.
Ignora le seguenti opzioni relative al routing in quanto non necessarie:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Segue:
Opzioni correlate ai percorsi, ad esempio la preferenza per il lato della strada.
Obiettivi del percorso. Se l'SDK di navigazione deve modificare la route restituita, utilizza gli obiettivi di route specificati durante la richiesta del token di route. Per questo motivo, devi utilizzare le stesse opzioni relative ai Waypoint specificate nell'API Routes.