Quando fai una richiesta, potresti dover decidere se è meglio restituire i risultati più precisi possibili o i risultati più rapidamente possibile. L'API Routes offre opzioni che ti consentono di controllare la qualità dei dati di risposta rispetto alla latenza della risposta.
Configura il livello dei dati sul traffico
L'API Routes fornisce RoutingPreferenza (REST) e RoutingPreferenza (gRPC) che consentono di specificare le preferenze di routing per il calcolo delle route. Queste preferenze differiscono nella misura in cui tengono conto delle condizioni del traffico nel calcolo del percorso. Ogni preferenza di routing produce risultati che differiscono in base alla qualità del percorso, all'orario di arrivo stimato stimato e alla latenza di risposta.
Le condizioni del traffico caratterizzano la frequenza del flusso di traffico. Ad esempio:
- In assenza di congestione, le condizioni del traffico sono considerate normali e il traffico scorre alla velocità normale senza ostacoli.
- Con l'avvicinarsi dell'ora di punta, la densità del traffico aumenta, con un conseguente rallentamento del traffico, che produce condizioni di traffico da leggere a moderate.
- Nel traffico da bumper a bumper, la velocità di flusso si arresta, generando condizioni di traffico intenso.
Traffico non consapevole
Quando imposti la preferenza di routing per TRAFFIC_UNAWARE
, le route vengono calcolate senza tenere conto delle condizioni di traffico attuali. Questa preferenza di routing
fornisce la latenza di risposta più bassa (le risposte vengono restituite più velocemente).
TRAFFIC_UNAWARE
è l'impostazione predefinita.
Nella risposta:
L'orario di arrivo stimato è incluso nella proprietà della risposta
duration
.Le proprietà di risposta
duration
estaticDuration
contengono lo stesso valore.
Utilizza questa preferenza di routing per ricevere risposte più rapide e i dettagli di routing approssimativi sono sufficienti.
Consapevole del traffico
Quando imposti la preferenza di routing per TRAFFIC_AWARE
, le route vengono calcolate tenendo conto delle condizioni di traffico attuali. Di conseguenza, il percorso e i dettagli del percorso riflettono in modo più accurato le condizioni reali. Dato che questo aumento della qualità dei dati va a scapito della latenza di risposta, le ottimizzazioni del rendimento vengono applicate per ridurre gran parte della latenza.
Nella risposta:
L'orario di arrivo stimato che prende in considerazione il traffico in tempo reale è riportato nella proprietà
duration
di risposta.La proprietà delle risposte
staticDuration
contiene la durata del viaggio tramite il percorso senza considerare le condizioni del traffico.
Utilizza questa preferenza di routing per ottenere dettagli di routing più precisi di TRAFFIC_UNAWARE
, ma non ti importa che vengano restituite le risposte con un aumento moderato della latenza.
Informazioni ottimali sul traffico
Quando imposti la preferenza di routing TRAFFIC_AWARE_OPTIMAL
, i percorsi vengono calcolati tenendo conto delle condizioni attuali del traffico, ma non vengono applicate ottimizzazioni del rendimento. In questa modalità, il server esegue una ricerca più completa della rete stradale per trovare il percorso ottimale.
La preferenza di routing per TRAFFIC_AWARE_OPTIMAL
equivale alla modalità utilizzata da maps.google.com e dall'app per dispositivi mobili Google Maps.
Se utilizzi questa opzione con Compute Route Matrix, il numero di elementi in una richiesta (numero di origini × numero di destinazioni) non può superare 100. Per ulteriori informazioni sui limiti di Matrice di route Compute, consulta Compute a una matrice di route.
Nella risposta:
L'orario di arrivo stimato che prende in considerazione il traffico in tempo reale è riportato nella proprietà
duration
di risposta.La proprietà delle risposte
staticDuration
contiene la durata del viaggio tramite il percorso senza considerare le condizioni del traffico.
Questa preferenza di routing fornisce la più alta latenza di risposta (ossia le risposte restituiscono il ritardo più lungo). Utilizza questa preferenza di routing quando vuoi ottenere risultati della massima qualità, indipendentemente dalle tempi di risposta.
Effetto dell'impostazione dell'orario di partenza
Facoltativamente, puoi utilizzare la proprietà departureTime
per impostare l'orario desiderato per una partenza della corsa. Se non imposti la proprietà departureTime
, viene utilizzata l'ora predefinita per effettuare la richiesta.
Per
TRAFFIC_UNAWARE
, non puoi impostaredepartureTime
perché la scelta di percorso e durata si basa sulla rete stradale e sulle condizioni del traffico indipendente dal tempo.Per
TRAFFIC_AWARE
eTRAFFIC_AWARE_OPTIMAL
, che tengono conto delle condizioni del traffico in tempo reale, il traffico in tempo reale diventa più importante man mano che si avvicina ladepartureTime
. Più imposti l'orario di partenza nel futuro, maggiore è la considerazione,
Esempio di impostazione del routing preferito
Il codice JSON seguente mostra come impostare la preferenza di routing per il corpo dell'entità messaggio di richiesta.
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
Configura qualità polilinea
L'API Routes consente di richiedere informazioni sulle condizioni del traffico lungo una polilinea sensibile al traffico. Per ulteriori informazioni, consulta Richiedere le polilinee.
La qualità di una polilinea può essere descritta nei seguenti termini:
Il numero di punti che compongono la polilinea
Più punti ci sono, più è liscio la polilinea, soprattutto nelle curve.
La precisione dei punti fluttuanti
I punti sono specificati come valori di latitudine e longitudine, rappresentati in formato a virgola mobile a precisione singola. Questo approccio funziona bene per valori piccoli (che possono essere rappresentati in modo preciso), ma la precisione diminuisce con l'aumento dei valori a causa di errori di arrotondamento in virgola mobile.
Il metodo computeRoutes (REST) e il metodo ComputeRoutes (gRPC) supportano l'opzione di richiesta polylineQuality
per il controllo della qualità polilinea.
Esempio di impostazione della qualità della polilinea
polylineQuality
specifica la qualità della polilinea come HIGH_QUALITY
o
OVERVIEW
(valore predefinito). Con OVERVIEW
, la polilinea è composta da un numero ridotto di punti e ha una latenza di richieste inferiore a HIGH_QUALITY
.
Ad esempio, nel corpo della richiesta:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "polylineQuality": "HIGH_QUALITY", "polylineEncoding": "ENCODED_POLYLINE", "departureTime": "2023-10-15T15:01:23.045123456Z", ... }