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 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 ogni origine e termina a ogni destinazione. Ogni elemento del flusso corrisponde alle informazioni relative a una singola route.

Il metodo ComputeRouteMatrix offre diversi vantaggi rispetto al servizio Matrice di distanza:

  • Il flusso di dati consente di restituire gli elementi prima di calcolare l'intera matrice, riducendo la latenza.
  • ComputeRouteMatrix offre opzioni granulari per il calcolo del traffico, che ti consentono di prendere decisioni di compromesso tra qualità e latenza.
  • Le richieste vengono eseguite con una priorità più alta all'interno dell'infrastruttura di Google, il che comporta una maggiore disponibilità.
  • Puoi specificare informazioni sull'intestazione (direzione di marcia) e sul lato della strada per i waypoint.
  • Puoi richiedere la restituzione delle informazioni sui pedaggi, la distanza del percorso e l'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 dell'API Routes Preferred, consulta la Guida introduttiva.

Utilizzo del metodo ComputeRouteMatrix

Il metodo ComputeRouteMatrix è disponibile tramite l'endpoint v1 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 compilazione, come Go, potrebbero eseguire questa operazione automaticamente.

  2. Utilizzando il tuo linguaggio preferito e una serie di strumenti di creazione, genera il codice protobuffer pertinente.

  3. Genera la richiesta. Con la richiesta devono essere inviate due parti obbligatorie dei metadati:

    • X-Goog-Api-Key deve essere impostata sulla chiave API.
    • X-Goog-Fieldmask deve essere impostata 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 è sconsigliato. Utilizza il carattere jolly per testare e comprendere la risposta dell'API, ma elenca in modo esplicito i campi che vuoi nella maschera dei campi nel codice di produzione.

      Per ulteriori informazioni su come creare la stringa della maschera di campo, consulta la pagina 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é tali campi potrebbero richiedere ulteriori calcoli. La latenza rimarrà stabile se specifichi i campi che ti servono e i nuovi campi che richiedono ulteriori calcoli verranno aggiunti in un secondo momento.

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

Per esempi sull'utilizzo del metodo ComputeRouteMatrix, consulta la pagina 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 del flusso restituisce un errore se il formato della richiesta non è corretto (ad esempio, se non ha origini). Tuttavia, se un errore si applica solo ad alcuni elementi del flusso (ad esempio, l'impostazione di un ID luogo non valido per un'origine), solo gli elementi interessati dall'errore contengono codici di errore.

Non è garantito che gli elementi restituiti dal flusso vengano restituiti in alcun 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 un indice di indicizzazione pari a zero. È importante archiviare gli ordini degli elenchi di origine e destinazione.

Calcolo delle tariffe a pagamento

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

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