Method: computeRouteMatrix

Riceve un elenco di origini e destinazioni e restituisce uno stream contenente informazioni sui percorsi per ogni combinazione di origine e destinazione.

NOTA:questo metodo richiede di specificare una maschera di 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 (vedi i parametri e le intestazioni URL disponibili). Il valore è un elenco separato da virgole di percorsi dei campi. Consulta questa documentazione dettagliata su come creare i percorsi dei campi.

Ad esempio, in questo metodo:

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

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

  • La selezione solo dei campi necessari consente al nostro server di risparmiare cicli di calcolo, il che ci consente di restituirti il risultato con una latenza inferiore.
  • La selezione solo dei campi necessari nel job di produzione garantisce un rendimento stabile della latenza. In futuro potremmo aggiungere altri campi di risposta, che potrebbero richiedere tempi di calcolo aggiuntivi. Se selezioni tutti i campi o tutti i campi di primo livello, potresti riscontrare un calo del rendimento perché tutti i nuovi campi che aggiungi verranno inclusi automaticamente nella risposta.
  • La selezione solo dei campi necessari comporta una dimensione della risposta inferiore e, di conseguenza, un throughput di rete più elevato.

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,
  "units": enum (Units),
  "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. Alla cardinalità di origini e destinazioni si applicano diversi limiti di dimensioni:

  • La somma del numero di origini + il numero di destinazioni specificate come placeId o address non deve essere superiore a 50.
  • Il prodotto del numero di origini × il numero di destinazioni non deve essere superiore a 625 in nessun caso.
  • Il prodotto del numero di origini × il numero di destinazioni non deve essere superiore a 100 se routingPreference è impostato su TRAFFIC_AWARE_OPTIMAL.
  • Il prodotto del numero di origini × il numero di destinazioni non deve essere superiore a 100 se travelMode è impostato su TRANSIT.
destinations[]

object (RouteMatrixDestination)

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

travelMode

enum (RouteTravelMode)

Facoltativo. Specifica la modalità di trasporto.

routingPreference

enum (RoutingPreference)

Facoltativo. Specifica come calcolare il percorso. Il server tenta di utilizzare la preferenza di routing selezionata per calcolare il percorso. Se la preferenza di routing genera un errore o una latenza molto 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)

Facoltativo. L'orario di partenza. Se non imposti questo valore, il valore predefinito è la data e l'ora in cui hai effettuato la richiesta. NOTA: puoi specificare un departureTime nel passato solo quando RouteTravelMode è impostato su TRANSIT.

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

arrivalTime

string (Timestamp format)

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 in formato "Zulu" UTC RFC3339, con risoluzione a livello di nanosecondo e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

languageCode

string

Facoltativo. Il codice lingua BCP-47, ad esempio "en-US" o "sr-Latn". Per ulteriori informazioni, consulta Identificatore della locale Unicode. Consulta la sezione Supporto delle lingue per l'elenco delle lingue supportate. Se non fornisci questo valore, la lingua di visualizzazione viene dedotta dalla località della prima origine.

regionCode

string

Facoltativo. Il codice regione, specificato come valore di due caratteri di un ccTLD ("dominio di primo livello"). Per ulteriori informazioni, consulta Domini di primo livello con codice paese.

units

enum (Units)

Facoltativo. Specifica le unità di misura per i campi di visualizzazione.

extraComputations[]

enum (ExtraComputation)

Facoltativo. Un elenco di calcoli aggiuntivi che possono 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 di campo da restituire nella risposta.

trafficModel

enum (TrafficModel)

Facoltativo. Specifica le ipotesi da utilizzare per il calcolo del tempo nel 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. Se non viene specificato TrafficModel, il valore predefinito è BEST_GUESS se viene richiesto il traffico.

transitPreferences

object (TransitPreferences)

Facoltativo. Specifica le preferenze che influiscono sul percorso restituito per i percorsi TRANSIT. NOTA: puoi specificare un transitPreferences solo quando RouteTravelMode è impostato su TRANSIT.

Corpo della risposta

Contiene le informazioni sui percorsi calcolate per una coppia di origine/destinazione nell'API v2.computeRouteMatrix. Questo proto può essere trasmesso in streaming 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. Indipendentemente dallo stato.

distanceMeters

integer

La distanza percorsa dal percorso, in metri.

duration

string (Duration format)

Il tempo necessario per percorrere il percorso. Se imposti routingPreference su TRAFFIC_UNAWARE, questo valore corrisponde 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 lungo il percorso senza tenere conto delle condizioni del traffico.

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

travelAdvisory

object (RouteTravelAdvisory)

Informazioni aggiuntive sul percorso. ad esempio informazioni su limitazioni e pedaggi

fallbackInfo

object (FallbackInfo)

In alcuni casi, quando il server non è in grado di calcolare il percorso con le preferenze specificate per questa particolare coppia di origine/destinazione, potrebbe ricorrere a un'altra modalità di calcolo. 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 partire da zero dell'origine nella richiesta.

destinationIndex

integer

Indice a partire da zero della destinazione nella richiesta.

RouteMatrixOrigin

Un'unica origine per ComputeRouteMatrixRequest

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

object (Waypoint)

Obbligatorio. Punto di riferimento di origine

routeModifiers

object (RouteModifiers)

Facoltativo. Modificatori per ogni percorso che prende questa stazione come origine

RouteMatrixDestination

Una singola destinazione per ComputeRouteMatrixRequest

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

object (Waypoint)

Obbligatorio. Punto di passaggio di destinazione

ExtraComputation

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 sui pedaggi per gli elementi della matrice.

RouteMatrixElementCondition

La condizione del percorso restituito.

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

LocalizedValues

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 da percorrere rappresentata in formato di testo.

duration

object (LocalizedText)

Durata rappresentata in forma di testo tenendo conto delle condizioni del traffico. Nota: se le informazioni sul traffico non sono state richieste, questo valore corrisponde a quello di staticDuration.

staticDuration

object (LocalizedText)

Durata rappresentata in formato di testo senza tenere conto delle condizioni del traffico.

transitFare

object (LocalizedText)

Tariffa del trasporto pubblico rappresentata in formato di testo.