Specifica come e se includere i dati sul traffico

Le preferenze sul traffico selezionate bilanciano la precisione dei dettagli del percorso con il rendimento delle richieste. Quando effettui una richiesta, vuoi capire se è meglio restituire i risultati più precisi possibile o se restituire i risultati il più rapidamente possibile. L'API Routes offre opzioni che permettono di controllare la qualità dei dati di risposta rispetto alla latenza.

Impostare il livello di dati sul traffico

L'API Routes offre RoutingPreference (REST) e RoutingPreference (gRPC) che consente 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 qualche modo per quanto riguarda la qualità del percorso, l'orario di arrivo stimato stimato e la 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 flusso scorre alla normale velocità senza ostacoli.
  • All'ora di punta, la densità del traffico aumenta e, di conseguenza, il traffico rallenta, con condizioni di traffico da leggere a moderate.
  • Nel traffico da bumper a bumper, la velocità di flusso si arresta e si crea un traffico intenso.

Traffico inconsapevole

Quando imposti la preferenza di routing TRAFFIC_UNAWARE, i percorsi vengono calcolati senza tenere conto delle condizioni attuali del traffico. Questa preferenza di routing offre la latenza di risposta più bassa (le risposte vengono restituite il più rapidamente).

TRAFFIC_UNAWARE è l'impostazione predefinita.

Nella risposta:

  • L'orario di arrivo stimato è contenuto nella proprietà della risposta duration.

  • Le proprietà della risposta duration e staticDuration contengono lo stesso valore.

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

Sensibile al traffico

Quando imposti la preferenza di routing TRAFFIC_AWARE, i percorsi vengono calcolati in base alle condizioni attuali del traffico. Di conseguenza, i dettagli del percorso e del percorso rispecchiano in modo più accurato le condizioni del mondo reale. Poiché questo aumento della qualità dei dati andrà a scapito della latenza di risposta, vengono applicate ottimizzazioni delle prestazioni per ridurre gran parte della latenza.

Nella risposta:

  • L'orario di arrivo stimato che prende in considerazione il traffico in tempo reale è contenuto nella proprietà della risposta duration.

  • La proprietà della risposta staticDuration contiene la durata del percorso senza prendere in considerazione le condizioni del traffico.

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

Ottimizzato in base al traffico

Quando imposti la preferenza di routing TRAFFIC_AWARE_OPTIMAL, le route vengono calcolate tenendo conto delle condizioni attuali del traffico, ma non vengono applicate ottimizzazioni delle prestazioni. In questa modalità, il server esegue una ricerca più approfondita della rete stradale per trovare il percorso ottimale.

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

Quando utilizzi questa opzione con la matrice di route di Compute, il numero di elementi in una richiesta (numero di origini × numero di destinazioni) non può superare 100. Per ulteriori informazioni sui limiti della matrice di route di Compute Engine, consulta Calcolare una matrice di route.

Nella risposta:

  • L'orario di arrivo stimato che prende in considerazione il traffico in tempo reale è contenuto nella proprietà della risposta duration.

  • La proprietà della risposta staticDuration contiene la durata del percorso senza prendere in considerazione le condizioni del traffico.

Questa preferenza di routing offre la latenza di risposta più elevata (ovvero, le risposte vengono restituite con il ritardo più lungo). Utilizza questa preferenza di routing quando vuoi ottenere risultati di massima qualità, indipendentemente dalla durata delle risposte.

Effetto dell'impostazione dell'orario di partenza

Facoltativamente, puoi utilizzare la proprietà departureTime per impostare l'orario di partenza di una corsa. Se non imposti la proprietà departureTime, per impostazione predefinita viene impostata l'ora in cui effettui la richiesta.

  • Per TRAFFIC_UNAWARE non puoi impostare departureTime perché la scelta del percorso e della durata si basa sulla rete stradale e sulle condizioni medie del traffico non dipendenti dal tempo.

  • Per TRAFFIC_AWARE e TRAFFIC_AWARE_OPTIMAL, che prendono in considerazione le condizioni del traffico in tempo reale, il traffico in tempo reale diventa più importante quanto più è vicino lo departureTime al momento. Più a breve imposti l'orario di partenza, maggiore sarà la considerazione delle condizioni di traffico storiche.

Esempio di impostazione della preferenza di routing

Il seguente codice JSON mostra come impostare la preferenza di routing nel corpo dell'entità del 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 la qualità della polilinea

L'API Routes ti consente di richiedere informazioni sulle condizioni del traffico lungo una polilinea sensibile al traffico. Per ulteriori informazioni, consulta la sezione Richiedere polilinee.

La qualità di una polilinea può essere descritta nei seguenti termini:

  • Il numero di punti che compongono la polilinea

    Maggiore è il numero di punti presenti, più fluida è la polilinea (soprattutto nelle curve).

  • La precisione in virgola mobile dei punti

    I punti vengono 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 con precisione), 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 controllare la qualità della 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 delle richieste inferiore rispetto 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",
  ...
}