Calcola una matrice di route

Puoi calcolare la distanza e la durata di una route per più origini e destinazioni utilizzando il metodo ComputeRouteMatrix dell'API Routes Preferred. ComputeRouteMatrix supporta sia le chiamate gRPC in streaming sia le chiamate HTTP REST.

Dato un elenco di coppie origine e destinazione, ComputeRouteMatrix calcola la distanza e la durata di un percorso che parte da ciascuna origine e termina a ciascuna destinazione. Ogni elemento del flusso corrisponde alle informazioni di una singola route.

Il metodo ComputeRouteMatrix offre diversi vantaggi rispetto al servizio Distance Matrix:

  • I flussi di dati consentono di restituire gli elementi prima del calcolo dell'intera matrice, riducendo la latenza.
  • ComputeRouteMatrix offre opzioni granulari per il calcolo del traffico, consentendoti di prendere decisioni sul compromesso tra latenza qualità.
  • Le richieste vengono eseguite con una priorità più elevata all'interno dell'infrastruttura di Google, il che si traduce in una maggiore disponibilità.
  • Puoi specificare le informazioni di intestazione (direzione di viaggio) e lato strada per le tappe.
  • Puoi richiedere la restituzione delle informazioni sul pedaggio, insieme alla distanza del percorso e all'orario di arrivo stimato.

Abilita il metodo ComputeRouteMatrix

Prima di poter utilizzare il metodo ComputeRouteMatrix nel codice, devi abilitarlo. Per ulteriori informazioni sull'abilitazione dei metodi API preferiti di Routes, consulta la guida introduttiva.

Utilizzo del metodo ComputeRouteMatrix

Il metodo ComputeRouteMatrix è disponibile tramite l'endpoint v1 di Routes Preferred.

Per informazioni più dettagliate, consulta la seguente documentazione:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

I seguenti passaggi generici descrivono come utilizzare gRPC per chiamare il metodo ComputeRouteMatrix:

  1. Controlla i protobuffer necessari dal repository googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Tieni presente che alcuni sistemi di build, come Go, potrebbero eseguire questa operazione automaticamente.

  2. Utilizzando il tuo linguaggio preferito e il set di strumenti di build, genera il codice di protobuffer pertinente.

  3. Genera la richiesta. Con la richiesta devono essere inviati due metadati obbligatori:

    • X-Goog-Api-Key deve essere impostata sulla tua chiave API.
    • X-Goog-Fieldmask deve essere impostato su un elenco separato da virgole dei campi richiesti dalla risposta. Ad esempio, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Puoi utilizzare il carattere jolly (*) per indicare tutti i campi, ma ciò è sconsigliato. Utilizza il carattere jolly per testare e comprendere la risposta dell'API, ma elenca esplicitamente i campi che vuoi nella maschera del campo nel codice di produzione.

      Per maggiori informazioni su come creare la stringa della maschera di campo, consulta https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Tieni presente che la disabilitazione dei campi non necessari può ridurre la latenza poiché questi campi potrebbero richiedere ulteriori calcoli. La latenza rimarrà stabile se specifichi i campi di cui hai bisogno e i nuovi campi che richiedono più calcoli vengono aggiunti in un secondo momento.

  4. Invia la tua richiesta a routespreferred.googleapis.com:443.Devi utilizzare il protocollo TLS.

Per esempi di utilizzo del metodo ComputeRouteMatrix, consulta Esempi di calcolo di una matrice di route (beta).

Una caratteristica distintiva del metodo ComputeRouteMatrix è che i codici di errore possono essere restituiti per l'intero flusso o per singoli elementi. Ad esempio, la connessione al flusso di dati restituisce un errore se la richiesta non è valida (ad esempio, ha zero origini). Tuttavia, se un errore si applica solo ad alcuni elementi del flusso (ad esempio, l'impostazione di un ID posizione non valido per un'origine), solo gli elementi interessati dall'errore contengono codici di errore.

Non è garantito che gli elementi restituiti dallo stream vengano restituiti in qualsiasi ordine. Per questo motivo, ogni elemento contiene un origin_index e un destination_index. Per le origini e le destinazioni specificate dalla 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 gli ordini degli elenchi di origine e di destinazione.

Calcolo delle tariffe per i pedaggi in corso...

Per informazioni sul calcolo delle tariffe dei pedaggi, consulta Calcolare le tariffe dei pedaggi.

Per esempi di calcolo delle tariffe per i pedaggi, consulta la sezione Esempi di calcolo di una matrice di percorso.