Method: computeRouteMatrix

Accetta un elenco di origini e destinazioni e restituisce uno stream contenente informazioni sul percorso per ogni combinazione di origine e destinazione.

NOTA:questo metodo richiede di specificare una maschera del 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 i parametri URL e le intestazioni 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 del campo di durate, distanze, stato dell'elemento, condizione e indici dell'elemento dell'itinerario (un esempio di configurazione di produzione): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

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

  • Se selezioni solo i campi di cui hai bisogno, il nostro server risparmia cicli di calcolo, il che ci consente di restituirti il risultato con una latenza inferiore.
  • Selezionando solo i campi necessari nel job di produzione, si garantisce una latenza stabile. In futuro potremmo aggiungere altri campi di risposta e questi nuovi campi potrebbero richiedere tempi di calcolo aggiuntivi. Se selezioni tutti i campi o tutti i campi a livello principale, potresti riscontrare un peggioramento delle prestazioni perché qualsiasi nuovo campo che aggiungiamo verrà incluso automaticamente nella risposta.
  • Se selezioni solo i campi di cui hai bisogno, le dimensioni della risposta saranno inferiori e il throughput di rete sarà maggiore.

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 diverse limitazioni di dimensioni:

  • La somma del numero di origini e del 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 × numero di destinazioni non deve essere superiore a 100 se routingPreference è impostato su TRAFFIC_AWARE_OPTIMAL.
  • Il prodotto del numero di origini × 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 l'itinerario. Il server tenta di utilizzare la preferenza di routing selezionata per calcolare l'itinerario. 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 è l'ora in cui hai effettuato la richiesta. NOTA: puoi specificare una departureTime nel passato solo quando RouteTravelMode è impostato su TRANSIT.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

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.

Utilizza RFC 3339, in cui l'output generato è sempre normalizzato in base al fuso orario UTC e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

languageCode

string

Facoltativo. Il codice lingua BCP-47, ad esempio "en-US" o "sr-Latn". Per ulteriori informazioni, consulta Identificatore di località 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 posizione della prima origine.

regionCode

string

Facoltativo. Il codice regione, specificato come valore di due caratteri ccTLD ("dominio di primo livello"). Per ulteriori informazioni, vedi Domini di primo livello nazionali.

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 del campo per essere restituiti nella risposta.

trafficModel

enum (TrafficModel)

Facoltativo. Specifica i presupposti 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. TrafficModel è disponibile solo per le richieste in cui RoutingPreference è impostato su TRAFFIC_AWARE_OPTIMAL e RouteTravelMode su DRIVE. Se viene richiesto il traffico e TrafficModel non è specificato, il valore predefinito è BEST_GUESS.

transitPreferences

object (TransitPreferences)

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

Corpo della risposta

Contiene le informazioni sulla route calcolate per una coppia 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 l'itinerario è stato trovato o meno. Indipendentemente dallo stato.

distanceMeters

integer

La distanza di percorrenza dell'itinerario, in metri.

duration

string (Duration format)

Il tempo necessario per percorrere l'itinerario. Se imposti routingPreference su TRAFFIC_UNAWARE, questo valore è 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 lungo il percorso senza prendere 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)

Informazioni aggiuntive sull'itinerario. Ad esempio, informazioni sulle limitazioni e sui pedaggi

fallbackInfo

object (FallbackInfo)

In alcuni casi, quando il server non è in grado di calcolare l'itinerario con le preferenze specificate per questa particolare coppia origine/destinazione, potrebbe ricorrere a 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 testuali delle proprietà di RouteMatrixElement.

originIndex

integer

Indice in base zero dell'origine nella richiesta.

destinationIndex

integer

Indice in base zero della destinazione nella richiesta.

RouteMatrixOrigin

Una singola origine per ComputeRouteMatrixRequest

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

object (Waypoint)

Obbligatorio. Tappa di partenza

routeModifiers

object (RouteModifiers)

Facoltativo. Modificatori per ogni percorso che ha questa origine

RouteMatrixDestination

Una singola destinazione per ComputeRouteMatrixRequest

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

object (Waypoint)

Obbligatorio. Waypoint 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 sul pedaggio per gli elementi della matrice.

RouteMatrixElementCondition

La condizione dell'itinerario restituito.

Enum
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Utilizzato solo quando il status dell'elemento non è OK.
ROUTE_EXISTS È stato trovato un percorso e le informazioni corrispondenti sono state compilate 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 testuali 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 formato di testo che tiene conto delle condizioni del traffico. Nota: se le informazioni sul traffico non sono state richieste, questo valore è uguale a 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.