Utilizza l'API Routes per calcolare la distanza e la durata di una route per più origini e destinazioni chiamando il metodo computeRouteMatrix (REST) o ComputeRouteMatrix (gRPC).
Dato un elenco di origini e destinazioni, il metodo calcola la distanza e la durata di un percorso che inizia da ogni origine e termina per ogni destinazione.
Limiti per le richieste
I metodi della matrice di route di Compute applicano i seguenti limiti di richiesta:
Il numero di elementi (numero di origini × numero di destinazioni) non può superare 625.
Se specifichi
TRAFFIC_AWARE_OPTIMAL
, il numero di elementi non può superare 100. Per scoprire di più suTRAFFIC_AWARE_OPTIMAL
, consulta Confronto tra qualità e latenza.Il numero massimo di tappe (origini + destinazioni) che puoi specificare utilizzando un ID luogo è 50.
Errori di risposta
Una funzionalità dei metodi di matrice di route Compute è che gli errori possono essere restituiti per l'intera risposta o per singoli elementi di risposta. Ad esempio, l'intera risposta contiene un errore se il formato della richiesta non è valido (ad esempio, non ha origini).
Tuttavia, se un errore si applica a un sottoinsieme di elementi nella risposta (ad esempio, una route non può essere calcolata per una combinazione di origine e destinazione), solo gli elementi interessati dall'errore restituiscono un codice di errore.
Risultati dello streaming
Il metodo gRPC ComputeRouteMatrix acquisisce un elenco di origini e destinazioni e restituisce un flusso contenente informazioni sulle route per ogni combinazione di origine e destinazione. Poiché i risultati vengono restituiti come stream, non devi attendere che vengano calcolate tutte le possibili combinazioni di percorsi prima di poter iniziare a elaborare i risultati.
Per gli elementi restituiti dal flusso non è garantito che vengano restituiti in qualsiasi ordine. Pertanto, ogni elemento di risposta contiene un elemento origin_index
e un elemento
destination_index
. Per le origini e le destinazioni specificate dalla richiesta,
l'origine del percorso è equivalente a origins[origin_index]
per un determinato elemento
e la destinazione del percorso è equivalente a destinations[destination_index]
.
Questi array sono indicizzati zero. È importante memorizzare gli ordini degli elenchi di origine e di destinazione.
Esempi di computing di una matrice di route
Utilizza il metodo computeRouteMatrix in una richiesta HTTP per calcolare una matrice di route.
Esempio HTTP
L'esempio seguente mostra una richiesta HTTP computeRouteMatrix
. In questo esempio:
Specifica un array di due tappe di origine e due destinazioni. Il metodo calcola un percorso da ogni origine a ogni destinazione in modo che la risposta contenga quattro route.
Nella matrice, il primo elemento si trova a un indice pari a 0, il secondo è Indice 1 e così via.
Includi una maschera per il campo di risposta per specificare quali campi di response (REST) o ComputeRoutesResponse (gRPC) restituire. In questo esempio, configura la richiesta in modo che restituisca
originIndex
,destinationIndex
,duration
,distanceMeters
,status
econdition
per ogni route. Per ulteriori informazioni, consulta la pagina Scegliere i campi da restituire.
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
La risposta contiene le quattro route possibili per la combinazione di tutti i Waypoint di origine e di destinazione.
Identifica ciascun percorso nella risposta utilizzando i campi originIndex
e destinationIndex
. Ad esempio, un valore originIndex
di 1 nella risposta corrisponde a una route calcolata dal punto di accesso all'indice 1 dell'array origins
nella richiesta.
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
Esempi di gRPC
Per esempi per le richieste gRPC, vedi gli esempi in Richiesta gRPC di esempio. L'esempio di Java in questa pagina chiama sia Compute Routes sia Compute Route Matrix.