Utilizza l'API Routes per calcolare la distanza e la durata di un percorso per più origini e destinazioni chiamando il metodo computeRouteMatrix (REST) o il metodo di streaming ComputeRouteMatrix (gRPC).
Dato un elenco di origini e destinazioni, il metodo calcola la distanza e la durata di un percorso che inizia in ogni origine e termina in ogni destinazione.
Ottieni una matrice dei percorsi con il trasporto pubblico
Puoi anche calcolare una matrice di percorsi con il trasporto pubblico. Per un esempio, consulta Ottieni una matrice delle route con il trasporto pubblico.
Limiti per le richieste
I metodi Compute Route Matrix applicano i seguenti limiti di richiesta per i waypoint che utilizzano indirizzi o ID luogo e per gli elementi. Gli elementi sono i percorsi tra ogni origine e destinazione in una matrice di percorsi, quindi il numero di elementi è il numero di origini moltiplicato per il numero di destinazioni. Ad esempio, se hai 10 origini e 10 destinazioni, hai 100 elementi:
Il numero di elementi non può superare 625 per i percorsi che non sono percorsi
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ò superare 100. Per saperne di più suTRAFFIC_AWARE_OPTIMAL, consulta Specifica come e se includere i dati sul traffico.Se specifichi le origini o le destinazioni utilizzando l'indirizzo o l'ID luogo, puoi specificarne 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 della risposta. Ad esempio, l'intera risposta contiene un errore se la richiesta non è corretta (ad esempio, non ha origini).
Tuttavia, se un errore si applica a un sottoinsieme di elementi nella risposta (ad esempio, non è possibile calcolare un percorso per una combinazione di origine e destinazione), solo gli elementi interessati dall'errore restituiscono un codice di errore.
Risultati dello stream gRPC
Il metodo gRPC ComputeRouteMatrix accetta un elenco di origini e destinazioni e restituisce un flusso contenente le informazioni sul percorso 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.
Non è garantito che gli elementi restituiti dallo stream vengano restituiti in un ordine specifico. Pertanto, ogni elemento della risposta contiene un origin_index e un destination_index. Per le origini e le destinazioni specificate dalla richiesta, l'origine del percorso equivale a origins[origin_index] per un determinato elemento e la destinazione del percorso equivale a destinations[destination_index].
Questi array sono indicizzati su base zero. È importante memorizzare gli ordini degli elenchi di origine e di destinazione.
Esempi di Compute Route Matrix
Utilizza il metodo computeRouteMatrix in una richiesta HTTP per calcolare una matrice di percorsi.
Esempio HTTP
L'esempio seguente mostra una richiesta HTTP computeRouteMatrix. In questo esempio:
Specifica un array di due waypoint di partenza e due di arrivo. Il metodo calcola un percorso da ogni origine a ogni destinazione, pertanto la risposta contiene quattro percorsi.
Nell'array, il primo elemento ha indice 0, il secondo ha indice 1 e così via.
Includi una maschera di campo della 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,statuseconditionper ogni percorso. Per saperne di più, consulta 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 i quattro percorsi possibili per la combinazione di tutti i waypoint di origine e destinazione.
Identifica ogni percorso nella risposta utilizzando i campi di risposta originIndex e destinationIndex. Ad esempio, un originIndex pari a 1 nella risposta corrisponde a un percorso calcolato dal waypoint 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 di richieste gRPC, consulta gli esempi in Esempio di richiesta gRPC. L'esempio Java in quella pagina chiama sia Compute Routes sia Compute Route Matrix.