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 chiamate gRPC in streaming sia chiamate HTTP REST.
Dato un elenco di coppie di 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 di matrice delle distanze:
- Il flusso di dati consente di restituire gli elementi prima che sia stata calcolata l'intera matrice, riducendo la latenza.
ComputeRouteMatrix
dispone di opzioni granulari per il calcolo del traffico, che ti consentono di prendere decisioni di compromesso tra qualità e latenza.- Le richieste vengono eseguite a una priorità più elevata all'interno dell'infrastruttura di Google, il che comporta una maggiore disponibilità.
- Puoi specificare le informazioni sull'intestazione (direzione di marcia) e sul lato della strada per i tappe.
- Puoi richiedere la restituzione delle informazioni sul pedaggio, 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 di Routes Preferred.
Per informazioni più dettagliate, consulta la documentazione riportata di seguito:
I seguenti passaggi generici descrivono come utilizzare gRPC per chiamare il metodo ComputeRouteMatrix
:
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 farlo automaticamente per te.
Utilizzando il tuo linguaggio preferito e il set di strumenti di creazione, genera il codice protobuffer pertinente.
Genera la richiesta. Con la richiesta devono essere inviati due parti obbligatorie dei metadati:
- X-Goog-Api-Key deve essere impostata sulla tua chiave API.
X-Goog-Fieldmask deve essere impostato su un elenco separato da virgole di campi obbligatori della 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 inserire nella maschera dei campi del codice di produzione.
Per saperne di più 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é tali campi potrebbero richiedere ulteriori calcoli. La latenza rimarrà stabile se specifichi i campi necessari e i nuovi campi che richiedono più calcoli vengono aggiunti in un secondo momento.
Invia la tua richiesta a
routespreferred.googleapis.com:443
.Devi utilizzare il protocollo TLS.
Per esempi di utilizzo del metodo ComputeRouteMatrix
, consulta la sezione 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 stream 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 dello stream (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 nessun 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, mentre la destinazione della route è equivalente a destinations[destination_index]
. Questi array sono a indicizzazione zero. È importante archiviare gli ordini degli elenchi di origine e destinazione.
Calcolo delle tariffe dei pedaggi
Per informazioni sul calcolo delle tariffe dei pedaggi, consulta Calcolo delle tariffe dei pedaggi.
Per esempi di calcolo dei pedaggi, consulta Esempi di calcolo di una matrice del percorso.