Calcola una matrice di route

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

Dato un elenco di coppie di origine e destinazione, ComputeRouteMatrix calcola la distanza e la durata di un percorso che inizia da ogni origine e termina in ogni destinazione. Ogni elemento dello stream corrisponde alle informazioni di un singolo percorso.

Il metodo ComputeRouteMatrix presenta diversi vantaggi rispetto al servizio Matrice delle distanze:

  • Lo streaming consente di restituire gli elementi prima che l'intera matrice sia stata calcolata, riducendo la latenza.
  • ComputeRouteMatrix offre opzioni dettagliate per il calcolo del traffico, consentendoti di prendere decisioni sul compromesso tra qualità e latenza.
  • 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 sull'orientamento (direzione di viaggio) e sul lato della strada per le tappe.
  • Puoi richiedere la restituzione delle informazioni sui pedaggi, insieme alla distanza del percorso e all'orario di arrivo stimato.

Abilitare il metodo ComputeRouteMatrix

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

Utilizzare il 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. Estrai i protobuffer necessari dal repository googleapis:

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

    Tieni presente che alcuni sistemi di compilazione, come Go, potrebbero farlo automaticamente.

  2. Utilizza la lingua e il set di strumenti di compilazione che preferisci per generare il codice protobuffer pertinente.

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

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

      Per ulteriori 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 disattivazione 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 se in un secondo momento vengono aggiunti nuovi campi che richiedono più calcoli.

  4. Invia la 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 percorso (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 di streaming restituisce un errore se la richiesta è malformata (ad esempio, se non ha origini). Tuttavia, se un errore si applica solo ad alcuni elementi del flusso (ad esempio, se imposti un ID luogo 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 un ordine specifico. Per questo motivo, ogni elemento contiene un origin_index e un 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 a zero. È importante memorizzare gli ordini degli elenchi di origine e destinazione.

Calcolare le tariffe dei pedaggi

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

Per esempi di calcolo delle tariffe dei pedaggi, consulta Esempi di calcolo di una matrice di percorso.