Utilizza l'API Routes per calcolare la distanza e la durata di un percorso per da più origini e destinazioni richiamando il Metodo computeRouteMatrix (REST) o lo streaming ComputeRouteMatrix (gRPC).
Dato un elenco di origini e destinazioni, il metodo calcola la distanza e la durata di un percorso che parte da ciascuna origine e termina in ogni destinazione.
Ottieni una matrice dei percorsi con il trasporto pubblico
Puoi anche calcolare una matrice del percorso sui mezzi di trasporto pubblico. Per un ad esempio, consulta Ottenere una matrice del percorso sui trasporti pubblici.
Limiti per le richieste
I metodi Compute Route Matrix applicano la seguente richiesta limiti per le tappe che utilizzano indirizzi o segnaposto ID, nonché per gli elementi. Gli elementi sono i percorsi tra ogni origine e destinazione in una matrice di route, quindi il numero di elementi è il numero di origini volte per il numero di destinazioni. Per Ad esempio, se hai 10 origini e 10 destinazioni, hai 100 elementi:
Il numero di elementi non può essere superiore a 625 per i percorsi che non sono route
TRANSIT
.Se specifichi una route
TRANSIT
, il numero di elementi non può superare 100.Se specifichi
TRAFFIC_AWARE_OPTIMAL
, il numero di elementi non può superano 100. Per ulteriori informazioni suTRAFFIC_AWARE_OPTIMAL
, vedi Specifica come e se includere i dati sul traffico.Se specifichi le origini o le destinazioni utilizzando l'indirizzo o l'ID luogo, specifichi fino a 50 in totale in questo modo.
Errori di risposta
Una caratteristica dei metodi Compute Route Matrix è 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 la richiesta non è valida (ad esempio, ha origini zero).
Tuttavia, se un errore si applica a un sottoinsieme di elementi nella risposta (ad esempio, non è possibile calcolare una route per combinazione di origine e destinazione), solo gli elementi interessati dalla error restituiscono un codice di errore.
Risultati di flussi gRPC
Il parametro ComputeRouteMatrix Il metodo gRPC accetta un elenco di origini e destinazioni e restituisce un flusso contenente informazioni sul percorso per ogni combinazione di luogo di partenza e di destinazione. Poiché i risultati vengono restituiti come uno stream, non devi aspettare le possibili combinazioni di percorso vengono calcolate prima di poter iniziare a elaborare che consentono di analizzare i dati e visualizzare i risultati.
Non è garantito che gli elementi restituiti dal flusso di dati vengano restituiti in qualsiasi
ordine. Di conseguenza, ogni elemento di risposta contiene origin_index
e
destination_index
. Per le origini e le destinazioni specificate nella richiesta,
l'origine della route è equivalente a origins[origin_index]
per un determinato elemento
e la destinazione della route è equivalente a destinations[destination_index]
.
Questi array hanno indice zero. È importante archiviare l'origine e
nell'elenco di destinazioni.
Esempi di calcolo di una matrice di route
Usa computeRouteMatrix in una richiesta HTTP per calcolare una matrice di route.
Esempio HTTP
L'esempio seguente mostra una richiesta HTTP computeRouteMatrix
. In questo esempio
di:
Specifica un array di due tappe di origine e due tappe di destinazione. Il metodo calcola un percorso da ogni origine a ciascuna destinazione in modo che la risposta contiene quattro route.
Nell'array, il primo elemento è a un indice pari a 0, il secondo a un indice pari a 1, e così via.
Includi una maschera del campo di risposta per specificare quali campi del risposta (REST) o ComputeRoutesResponse (gRPC) da restituire. In questo esempio, configura la richiesta da restituire
originIndex
,destinationIndex
,duration
,distanceMeters
,status
, econdition
per ogni percorso. Per ulteriori informazioni, vedi Scegli 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 possibili route per la combinazione di tutte le origini e le tappe di destinazione.
Identifica ciascuna route nella risposta utilizzando originIndex
e
destinationIndex
campi di risposta. Ad esempio, un originIndex
di 1 nel
corrisponde a una rotta calcolata dal waypoint all'indice 1 della
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 esempio per le richieste gRPC, vedi gli esempi su Richiesta gRPC di esempio. Java in questa pagina chiama sia Compute Routes Compute Route Matrix.