Impostare le opzioni relative al traffico

Sviluppatori dello Spazio economico europeo (SEE)

Le preferenze di traffico che selezioni bilanciano l'accuratezza dei dettagli del percorso con il rendimento della richiesta in uno dei due modi seguenti:

  • Rilevamento del traffico: restituisce i risultati più accurati possibili (latenza più elevata).
  • Traffico non rilevato: restituisce i risultati il più rapidamente possibile (latenza più bassa).

Quando effettui una richiesta, valuta se è meglio restituire i risultati più accurati possibili o restituire i risultati il più rapidamente possibile. La libreria Routes offre opzioni che ti consentono di controllare la qualità dei dati di risposta rispetto alla latenza della risposta.

Imposta il livello di traffico e il modello di traffico

Per specificare il livello di traffico, imposta routingPreference su ComputeRoutesRequest. Il seguente elenco mostra le opzioni routingPreference disponibili:

  • TRAFFIC_UNAWARE (impostazione predefinita): restituisce i risultati più rapidamente, con dettagli approssimativi dell'itinerario.
  • TRAFFIC_AWARE: restituisce risultati più accurati utilizzando dati sul traffico in tempo reale, ma con una latenza maggiore.
  • TRAFFIC_AWARE_OPTIMAL: restituisce i risultati più accurati possibili utilizzando i dati sul traffico in tempo reale, ma con la latenza più elevata.

La proprietà TRAFFIC_MODEL rappresenta i presupposti da utilizzare per prevedere la durata nel traffico ( TrafficModel.BEST_GUESS (impostazione predefinita), TrafficModel.OPTIMISTIC, TrafficModel.PESSIMISTIC).

Come selezionare il routing in base al traffico

Per creare una richiesta di percorso in base al traffico:

  1. Imposta la proprietà travelMode su DRIVING.

  2. Imposta la proprietà routingPreference su uno dei seguenti valori:

    • TRAFFIC_AWARE
    • TRAFFIC_AWARE_OPTIMAL

    NOTA: TRAFFIC_UNAWARE è l'impostazione predefinita.

  3. Imposta la proprietà trafficModel su uno dei seguenti valori:

  4. Imposta la proprietà extraComputations su TRAFFIC_ON_POLYLINE.

  5. Richiedi i campi path, speedPaths e routeLabels.

La seguente richiesta di esempio mostra come richiedere un percorso in base al traffico che mostra i dati sul traffico sulla polilinea:

// Define a traffic aware routes request with polylines.
const requestWithTraffic = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE_OPTIMAL',
  trafficModel: 'optimistic',
  extraComputations: ['TRAFFIC_ON_POLYLINE'],
  fields: ['speedPaths'],
};
    

Condizioni del traffico

Le condizioni del traffico caratterizzano la velocità del flusso di traffico:

  • Traffico normale: nessun ingorgo e traffico che scorre a velocità normale.
  • Traffico da leggero a moderato: aumento della congestione, con traffico che scorre a velocità ridotta.
  • Traffico intenso: grave ingorgo, con velocità di traffico molto ridotta.

Traffico non rilevato

TRAFFIC_UNAWARE è l'impostazione predefinita. Utilizza questa preferenza di routing quando vuoi che le risposte vengano restituite il più rapidamente possibile e i dettagli di routing approssimativi sono sufficienti.

I percorsi TRAFFIC_UNAWARE vengono calcolati senza tenere conto delle condizioni di traffico attuali. Questa preferenza di routing genera la risposta alla richiesta più rapida (latenza più bassa).

Se scegli TRAFFIC_UNAWARE, il percorso e la durata scelti si basano sulla rete stradale e sulle condizioni di traffico medie indipendenti dal tempo, non sulle condizioni stradali attuali. Di conseguenza, i percorsi potrebbero includere strade chiuse temporaneamente. I risultati di una determinata richiesta possono variare nel tempo a causa di modifiche alla rete stradale, aggiornamenti delle condizioni medie del traffico e della natura distribuita del servizio. I risultati possono variare anche tra percorsi quasi equivalenti in qualsiasi momento o frequenza.

Ecco le risposte che vedrai:

  • duration: contiene l'orario di arrivo stimato per il percorso.
  • staticDuration: l'orario di arrivo stimato per il percorso considerando solo le informazioni sul traffico storico. Per TRAFFIC_UNAWARE, questo campo contiene lo stesso valore di duration.

Consapevole del traffico

Utilizza questa preferenza di routing quando vuoi dettagli di routing più precisi rispetto a TRAFFIC_UNAWARE e non ti preoccupa se le risposte vengono restituite con un aumento moderato della latenza.

Quando imposti la preferenza di routing TRAFFIC_AWARE, il servizio calcola il percorso tenendo conto delle condizioni del traffico attuali. Di conseguenza, il percorso e i relativi dettagli riflettono in modo più accurato le condizioni reali. Poiché questo aumento della qualità dei dati avviene a scapito della latenza di risposta, vengono applicate ottimizzazioni delle prestazioni per ridurre gran parte della latenza.

Ecco le risposte che vedrai:

  • duration: l'orario di arrivo stimato tenendo conto delle informazioni sul traffico in tempo reale.
  • staticDuration: l'orario di arrivo stimato per il percorso considerando solo le informazioni sul traffico storico.

Ottimale in base al traffico

Utilizza questa preferenza di routing quando vuoi risultati di altissima qualità senza considerare il tempo necessario per le risposte. Questa preferenza di routing ha il ritardo più lungo nella restituzione delle risposte (latenza più elevata).

Quando imposti la preferenza di routing TRAFFIC_AWARE_OPTIMAL, il servizio calcola il percorso tenendo conto delle condizioni del traffico attuali, ma non applica ottimizzazioni delle prestazioni. In questa modalità, il server esegue una ricerca più esaustiva della rete stradale per trovare il percorso ottimale.

La preferenza di routing TRAFFIC_AWARE_OPTIMAL è equivalente alla modalità utilizzata da maps.google.com e dall'app mobile Google Maps.

Quando utilizzi questa opzione con computeRouteMatrix, il numero di elementi in una richiesta (numero di origini × numero di destinazioni) non può superare 25.

Ecco le risposte che vedrai:

  • duration: l'orario di arrivo stimato per l'itinerario tenendo conto delle informazioni sul traffico in tempo reale.
  • staticDuration: l'orario di arrivo stimato per il percorso considerando solo le informazioni sul traffico storico.

Impostare l'orario di partenza (facoltativo)

Utilizza questa proprietà solo per le richieste sensibili al traffico in cui l'orario di partenza deve essere nel futuro. Se non imposti la proprietà departureTime, il valore predefinito è l'ora in cui effettui la richiesta.

Utilizza la proprietà departureTime insieme alle opzioni TRAFFIC_AWARE e TRAFFIC_AWARE_OPTIMAL quando vuoi modificare il modo in cui il servizio prevede il traffico quando scegli un percorso.

  • TRAFFIC_UNAWARE: non consigliato perché la scelta del percorso e la durata si basano sulla rete stradale e sulle condizioni di traffico medie indipendenti dal tempo.
  • TRAFFIC_AWARE e TRAFFIC_AWARE_OPTIMAL: Consigliato per le partenze che avverranno nel prossimo futuro perché queste preferenze tengono conto delle condizioni del traffico in tempo reale. Il traffico in tempo reale diventa più importante e pertinente quanto più departureTime è vicino al momento attuale. Più lontano nel futuro imposti l'ora di partenza, maggiore è la considerazione delle condizioni del traffico storiche nella selezione dei percorsi.

Ottenere un token di percorso

I token di percorso sono una rappresentazione sicura per il web con codifica Base64 di un percorso. Utilizza un token di percorso per condividere un percorso con l'SDK Navigation. L'SDK utilizza questo token per ricostruire il percorso e mantenere l'intento di navigazione originale, anche durante un ricalcolo del percorso.

Per ottenere un token di percorso:

  • Imposta travelMode su DRIVING.
  • Imposta routingPreference su TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL.
  • Richiedi il campo routeToken.

La seguente richiesta di esempio mostra come richiedere un token di percorso:

// Define a traffic aware routes request with a route token.
const requestWithRouteToken = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE',
  fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'],
};