Method: computeRouteMatrix

Recupera un elenco di origini e destinazioni e restituisce un flusso contenente informazioni sul percorso per ogni combinazione di origine e destinazione.

NOTA: questo metodo richiede di specificare una maschera da campo di risposta nell'input. Puoi fornire la maschera del campo di risposta utilizzando il parametro URL $fields o fields oppure l'intestazione HTTP/gRPC X-Goog-FieldMask (consulta le intestazioni e i parametri URL disponibili). Il valore è un elenco di percorsi di campo separati da virgole. Consulta questa documentazione dettagliata su come creare i percorsi dei campi.

Ad esempio, con questo metodo:

  • Maschera di campo di tutti i campi disponibili (per l'ispezione manuale): X-Goog-FieldMask: *
  • Maschera di campo delle durate, delle distanze, dello stato degli elementi, delle condizioni e degli indici degli elementi (un esempio di configurazione della produzione): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

È fondamentale includere status nella maschera del campo, altrimenti tutti i messaggi sembreranno corretti. Google sconsiglia l'utilizzo della maschera del campo di risposta con caratteri jolly (*) perché:

  • La selezione dei soli campi necessari consente al nostro server di salvare i cicli di calcolo, consentendoci di restituirti il risultato con una latenza inferiore.
  • La selezione dei soli campi necessari nel job di produzione garantisce prestazioni di latenza stabili. Potremmo aggiungere altri campi di risposta in futuro e questi nuovi campi potrebbero richiedere più tempo di calcolo. Se selezioni tutti i campi o se selezioni tutti i campi al livello più alto, potresti riscontrare un peggioramento del rendimento perché qualsiasi nuovo campo aggiunto verrà automaticamente incluso nella risposta.
  • Se selezioni solo i campi necessari, ottieni una dimensione di risposta inferiore e quindi una velocità effettiva di rete più elevata.

Richiesta HTTP

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Campi
origins[]

object (RouteMatrixOrigin)

Obbligatorio. Array di origini, che determina le righe della matrice di risposta. Sono previste diverse restrizioni alle dimensioni per la cardinalità di origini e destinazioni:

  • La somma del numero di origini + il numero di destinazioni specificate come placeId o address non deve essere maggiore di 50.
  • Il prodotto del numero di origini × il numero di destinazioni non deve comunque essere superiore a 625.
  • Il prodotto relativo al numero di origini × numero di destinazioni non deve essere maggiore di 100 se il percorso routingè impostato su TRAFFIC_AWARE_OPTIMAL.
  • Il prodotto del numero di origini × numero delle destinazioni non deve essere maggiore di 100 se TravelMode è impostato su TRANSIT.
destinations[]

object (RouteMatrixDestination)

Obbligatorio. Array di destinazioni, che determina le colonne della matrice di risposta.

travelMode

enum (RouteTravelMode)

Campo facoltativo. Specifica la modalità di trasporto.

routingPreference

enum (RoutingPreference)

Campo facoltativo. Specifica come calcolare la route. Il server tenta di utilizzare la preferenza di routing selezionata per calcolare la route. Se la preferenza di routing genera un errore o una latenza particolarmente lunga, viene restituito un errore. Puoi specificare questa opzione solo quando travelMode è DRIVE o TWO_WHEELER, altrimenti la richiesta non va a buon fine.

departureTime

string (Timestamp format)

Campo facoltativo. L'orario di partenza. Se non imposti questo valore, il valore predefinito corrisponderà all'ora in cui hai effettuato la richiesta. NOTA: puoi specificare un departureTime in passato solo quando RouteTravelMode è impostato su TRANSIT.

Un timestamp nel formato "Zulu" UTC RFC3339, con una risoluzione di nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

arrivalTime

string (Timestamp format)

Campo facoltativo. L'ora di arrivo. NOTA: può essere impostato solo quando RouteTravelMode è impostato su TRANSIT. Puoi specificare departureTime o arrivalTime, ma non entrambi.

Un timestamp nel formato "Zulu" UTC RFC3339, con una risoluzione di nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

languageCode

string

Campo facoltativo. Il codice lingua BCP-47, ad esempio "en-US" o "sr-Latn". Per ulteriori informazioni, visita il sito http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Visita la pagina Assistenza per le lingue per l'elenco delle lingue supportate. Se non specifichi questo valore, la lingua di visualizzazione viene dedotta dalla località della prima origine.

regionCode

string

Campo facoltativo. Il codice regione, specificato come valore di due caratteri ccTLD ("dominio di primo livello"). Per ulteriori informazioni, visita https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains.

extraComputations[]

enum (ExtraComputation)

Campo facoltativo. Un elenco di calcoli aggiuntivi che potrebbero essere utilizzati per completare la richiesta. Nota: questi calcoli aggiuntivi potrebbero restituire campi aggiuntivi nella risposta. Questi campi aggiuntivi devono essere specificati anche nella maschera del campo da restituire nella risposta.

trafficModel

enum (TrafficModel)

Campo facoltativo. Specifica le ipotesi da utilizzare per il calcolo del tempo di traffico. Questa impostazione influisce sul valore restituito nel campo della durata in RouteMatrixElement, che contiene il tempo previsto nel traffico in base alle medie storiche. Da RoutingPreference a TRAFFIC_AWARE_OPTIMAL e da RouteTravelMode a DRIVE. Il valore predefinito è BEST_GUESS se il traffico è richiesto e TrafficModel non è specificato.

transitPreferences

object (TransitPreferences)

Campo facoltativo. Specifica le preferenze che influenzano la route restituita per TRANSIT route. NOTA: puoi specificare un transitPreferences solo quando RouteTravelMode è impostato su TRANSIT.

Corpo della risposta

Contiene le informazioni di percorso calcolate per una coppia di origine/destinazione nell'API v2.computeRouteMatrix. Questo protocollo può essere trasmesso al client.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "localizedValues": {
    object (LocalizedValues)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
Campi
status

object (Status)

Codice di stato di errore per questo elemento.

condition

enum (RouteMatrixElementCondition)

Indica se il percorso è stato trovato o meno. Indipendente dallo stato.

distanceMeters

integer

La distanza di percorrenza del percorso, in metri.

duration

string (Duration format)

Il tempo necessario per seguire il percorso. Se imposti routingPreference su TRAFFIC_UNAWARE, il valore sarà uguale a staticDuration. Se imposti routingPreference su TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL, questo valore viene calcolato tenendo conto delle condizioni del traffico.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

staticDuration

string (Duration format)

La durata del viaggio nel percorso senza tenere in considerazione le condizioni del traffico.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

Ulteriori informazioni sul percorso. Ad esempio, informazioni sulle restrizioni e informazioni sui pedaggi

fallbackInfo

object (FallbackInfo)

In alcuni casi, quando il server non è in grado di calcolare la route con le preferenze specificate per questa specifica coppia di origine/destinazione, potrebbe utilizzare una modalità di calcolo diversa. Quando viene utilizzata la modalità di riserva, questo campo contiene informazioni dettagliate sulla risposta di riserva. In caso contrario, questo campo non è impostato.

localizedValues

object (LocalizedValues)

Rappresentazioni di testo delle proprietà di RouteMatrixElement.

originIndex

integer

Indice a base zero dell'origine nella richiesta.

destinationIndex

integer

Indice a zero zero della destinazione nella richiesta.

RouteMatrixOrigin

Un'unica origine per ComputeRouteMatrixRequest

Rappresentazione JSON
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
Campi
waypoint

object (Waypoint)

Obbligatorio. Waypoint di origine

routeModifiers

object (RouteModifiers)

Campo facoltativo. Modificatori per ogni percorso che accetta questa origine

Destinazione RouteMatrix

Un'unica destinazione per ComputeRouteMatrixRequest

Rappresentazione JSON
{
  "waypoint": {
    object (Waypoint)
  }
}
Campi
waypoint

object (Waypoint)

Obbligatorio. Waypoint di destinazione

Extracomputazione

Calcoli aggiuntivi da eseguire durante il completamento della richiesta.

Enum
EXTRA_COMPUTATION_UNSPECIFIED Non utilizzato. Le richieste contenenti questo valore non andranno a buon fine.
TOLLS Informazioni sul pedaggio per gli elementi della matrice.

Condizione elemento route matrix

La condizione del percorso restituito.

Enum
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Utilizzato solo quando status dell'elemento non va bene.
ROUTE_EXISTS È stato trovato un percorso e le informazioni corrispondenti sono state inserite per l'elemento.
ROUTE_NOT_FOUND Nessun percorso trovato. I campi contenenti informazioni sul percorso, come distanceMeters o duration, non verranno compilati nell'elemento.

Valori localizzati

Rappresentazioni di testo di determinate proprietà.

Rappresentazione JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Campi
distance

object (LocalizedText)

Distanza percorsa in forma di testo.

duration

object (LocalizedText)

Durata rappresentata sotto forma di testo tenendo conto delle condizioni del traffico. Nota: se le informazioni sul traffico non sono state richieste, questo valore è lo stesso di staticDuration.

staticDuration

object (LocalizedText)

Durata rappresentata sotto forma di testo senza tenere conto delle condizioni del traffico.

transitFare

object (LocalizedText)

Tariffa per il trasporto pubblico rappresentata sotto forma di testo.