Recupero di una matrice di route

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 su TRAFFIC_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 prende 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 attendere 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, e condition 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.