Method: computeRoutes

Restituisce il percorso principale insieme a percorsi alternativi facoltativi, dato un insieme di terminali e tappe intermedie.

NOTA: questo metodo richiede di specificare una maschera di campo di risposta nell'input. Puoi fornire la maschera del campo di risposta utilizzando il parametro URL $fields o fields oppure utilizzando un'intestazione HTTP/gRPC X-Goog-FieldMask (consulta i parametri e intestazioni degli URL disponibili). Il valore è un elenco di percorsi di campo separati da virgole. Consulta la documentazione dettagliata su come creare i percorsi di campo.

Ad esempio, con questo metodo:

  • Maschera dei campi di tutti i campi disponibili (per l'ispezione manuale): X-Goog-FieldMask: *
  • Maschera sul campo di durata, distanza e polilinea a livello di percorso (un esempio di configurazione di produzione): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google sconsiglia l'utilizzo della maschera del campo di risposta con caratteri jolly (*) o specifica la maschera di campo al livello superiore (routes) perché:

  • Selezionare solo i campi necessari aiuta il nostro server a salvare i cicli di calcolo, consentendoci di restituirti il risultato con una latenza più bassa.
  • Selezionare solo i campi necessari nel job di produzione assicura prestazioni di latenza stabili. In futuro potremmo aggiungere altri campi di risposta, che potrebbero richiedere un tempo di calcolo aggiuntivo. Se selezioni tutti i campi o selezioni tutti i campi al livello più alto, il rendimento potrebbe peggiorare perché tutti i nuovi campi che aggiungiamo verranno automaticamente inclusi nella risposta.
  • Selezionare solo i campi necessari riduce le dimensioni della risposta e, di conseguenza, la velocità effettiva di rete.

Richiesta HTTP

POST https://routes.googleapis.com/directions/v2:computeRoutes

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "requestedReferenceRoutes": [
    enum (ReferenceRoute)
  ],
  "extraComputations": [
    enum (ExtraComputation)
  ]
}
Campi
origin

object (Waypoint)

Obbligatorio. Punto di partenza.

destination

object (Waypoint)

Obbligatorio. Waypoint di destinazione.

intermediates[]

object (Waypoint)

Campo facoltativo. Un insieme di tappe lungo il percorso (esclusi i punti terminal), per fermarti o passare. Sono supportati fino a 25 tappe intermedie.

travelMode

enum (RouteTravelMode)

Campo facoltativo. Specifica la modalità di trasporto.

routingPreference

enum (RoutingPreference)

Campo facoltativo. Specifica come calcolare il percorso. Il server tenta di utilizzare la preferenza di routing selezionata per calcolare la route. Se la preferenza di routing genera un errore o una latenza extra lunga, viene restituito un errore. Puoi specificare questa opzione solo quando travelMode è DRIVE o TWO_WHEELER, altrimenti la richiesta non va a buon fine.

polylineQuality

enum (PolylineQuality)

Campo facoltativo. Specifica la tua preferenza per la qualità della polilinea.

polylineEncoding

enum (PolylineEncoding)

Campo facoltativo. Specifica la codifica preferita per la polilinea.

departureTime

string (Timestamp format)

Campo facoltativo. L'orario di partenza. Se non imposti questo valore, per impostazione predefinita verrà utilizzato l'orario in cui hai effettuato la richiesta. Se imposti questo valore su un'ora già verificatasi, la richiesta non andrà a buon fine.

Un timestamp in formato RFC3339 UTC "Zulu", con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

Campo facoltativo. Specifica se calcolare i percorsi alternativi oltre al percorso. Non vengono restituiti percorsi alternativi per le richieste che hanno tappe intermedie.

routeModifiers

object (RouteModifiers)

Campo facoltativo. Un insieme di condizioni da soddisfare che influiscono sul modo in cui vengono calcolati i percorsi.

languageCode

string

Campo facoltativo. Il codice lingua BCP-47, ad esempio "en-US" o "sr-Latn". Per ulteriori informazioni, visita il sito http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Visita la pagina del supporto per le lingue per l'elenco delle lingue supportate. Se non fornisci questo valore, la lingua di visualizzazione viene dedotta dalla posizione della richiesta di percorso.

regionCode

string

Campo facoltativo. Il codice regione, specificato come valore di ccTLD ("dominio di primo livello") a due caratteri. Per ulteriori informazioni, visita la pagina https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains.

units

enum (Units)

Campo facoltativo. Specifica le unità di misura per i campi di visualizzazione. incluso il campo instruction in NavigationInstruction. Le unità di misura utilizzate per il percorso, la tratta, la distanza percorsa e la durata non sono influenzate da questo valore. Se non fornisci questo valore, le unità display vengono dedotte dalla posizione della richiesta.

requestedReferenceRoutes[]

enum (ReferenceRoute)

Campo facoltativo. Specifica le route di riferimento da calcolare come parte della richiesta, oltre a quella predefinita. Un percorso di riferimento è un percorso con un obiettivo di calcolo di percorso diverso da quello predefinito. Ad esempio, un calcolo del percorso di riferimento FUEL_EFFICIENT tiene conto di vari parametri che genererebbero un percorso ottimale per il consumo di carburante.

extraComputations[]

enum (ExtraComputation)

Campo facoltativo. Un elenco di calcoli aggiuntivi che possono essere utilizzati per completare la richiesta. Nota: questi calcoli aggiuntivi potrebbero restituire campi aggiuntivi nella risposta. Questi campi aggiuntivi devono essere specificati anche nella maschera del campo da restituire nella risposta.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

v2.computeRoutes del messaggio di risposta.

Rappresentazione JSON
{
  "routes": [
    {
      object (Route)
    }
  ],
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "geocodingResults": {
    object (GeocodingResults)
  }
}
Campi
routes[]

object (Route)

Contiene un array di route calcolate (fino a tre) quando specifichi compute_alternatives_routes e contiene una sola route in caso contrario. Se questo array contiene più voci, la prima è la route più consigliata. Se la matrice è vuota, significa che non è stato trovato alcun percorso.

fallbackInfo

object (FallbackInfo)

In alcuni casi, quando il server non è in grado di calcolare i risultati della route con tutte le preferenze di input, potrebbe utilizzare un metodo di calcolo diverso. Se viene utilizzata la modalità riserva, questo campo contiene informazioni dettagliate sulla risposta di riserva. In caso contrario, questo campo non è impostato.

geocodingResults

object (GeocodingResults)

Contiene informazioni sulla risposta di geocodifica per i tappe specificati come indirizzi.

Qualità (Polineline)

Un insieme di valori che specifica la qualità della polilinea.

Enum
POLYLINE_QUALITY_UNSPECIFIED Nessuna preferenza di qualità polilinea specificata. Il valore predefinito è OVERVIEW.
HIGH_QUALITY Specifica una polilinea di alta qualità, che viene composta utilizzando più punti rispetto a OVERVIEW, a un costo superiore. Utilizza questo valore quando hai bisogno di una maggiore precisione.
OVERVIEW Specifica una polilinea panoramica, che è composta da un numero ridotto di punti. Utilizza questo valore quando visualizzi una panoramica del percorso. L'utilizzo di questa opzione ha una latenza di richieste inferiore rispetto all'uso dell'opzione HIGH_QUALITY.

Codifica Polyline

Specifica il tipo di polilinea da restituire.

Enum
POLYLINE_ENCODING_UNSPECIFIED Nessuna preferenza di tipo polilinea specificata. Il valore predefinito è ENCODED_POLYLINE.
ENCODED_POLYLINE Specifica una polilinea codificata utilizzando l'algoritmo di codifica polilinea.
GEO_JSON_LINESTRING Specifica una polilinea utilizzando il formato LineString GeoJSON

Unità

Un insieme di valori che specifica l'unità di misura utilizzata nel display.

Enum
UNITS_UNSPECIFIED Unità di misura non specificate. Il valore predefinito è l'unità di misura dedotta dalla richiesta.
METRIC Unità di misura metriche.
IMPERIAL Unità di misura imperiali (inglese).

Percorso di riferimento

Una route di riferimento supportata su ComputeRoutesRequest.

Enum
REFERENCE_ROUTE_UNSPECIFIED Non utilizzato. Le richieste contenenti questo valore non vanno a buon fine.
FUEL_EFFICIENT Percorso a basso consumo di carburante. Le route etichettate con questo valore vengono determinate come ottimizzate per parametri come il consumo di carburante.

Extracomputazione

Calcolo aggiuntivo da eseguire durante il completamento della richiesta.

Enum
EXTRA_COMPUTATION_UNSPECIFIED Non utilizzato. Le richieste contenenti questo valore avranno esito negativo.
TOLLS Informazioni sul pedaggio per i percorsi.
FUEL_CONSUMPTION Consumo stimato di carburante per i percorsi.
TRAFFIC_ON_POLYLINE Polilinee consapevoli per il traffico lungo i percorsi.

Itinerario

Incapsula un percorso costituito da una serie di tratti di strada collegati che uniscono i tappe iniziali, finali e intermedie.

Rappresentazione JSON
{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "routeToken": string
}
Campi
routeLabels[]

enum (RouteLabel)

Etichette per Route utili per identificare le proprietà specifiche del percorso da confrontare con altre.

legs[]

object (RouteLeg)

Una raccolta di gambe (segmenti di percorso tra tappe) che compongono il percorso. Ogni tratta corrisponde alla corsa tra due tappe non via. Ad esempio, una route senza tappe intermedie ha una sola estremità. Una route che include un waypoint intermedio non via ha due giri. Un percorso che include un sentiero intermedio via ha una tratto. L'ordine delle gambe corrisponde all'ordine dei tappe da origin a intermediates e destination.

distanceMeters

integer

La distanza percorsa del percorso, in metri.

duration

string (Duration format)

Il tempo necessario per esplorare il percorso. Se imposti routingPreference su TRAFFIC_UNAWARE, questo valore sarà uguale a staticDuration. Se imposti routingPreference su TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL, questo valore viene calcolato tenendo conto delle condizioni del traffico.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

staticDuration

string (Duration format)

La durata del viaggio attraverso il percorso senza considerare le condizioni del traffico.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

polyline

object (Polyline)

La polilinea del percorso generale. Questa polilinea sarà la polilinea combinata di tutti i legs.

description

string

Una descrizione del percorso.

warnings[]

string

Un array di avvisi da mostrare durante la visualizzazione del percorso.

viewport

object (Viewport)

Il riquadro di delimitazione dell'area visibile della polilinea.

travelAdvisory

object (RouteTravelAdvisory)

Ulteriori informazioni sul percorso.

routeToken

string

Token di percorso sicuro per il Web con codifica Web che può essere trasmesso a NavigazioneSDK, che consente all'SDK di navigazione di ricostruire la route durante la navigazione, e in caso di reindirizzamento che rispetta l'intenzione originale quando viene richiamato Routes v2.computeRoutes. I clienti devono considerare questo token come un blob opaco. NOTA: Route.route_token è disponibile soltanto per le richieste che hanno impostato ComputeRoutesRequest.routing_preference su TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL. Inoltre, Route.route_token non è supportato per le richieste che hanno punti di via.

Etichetta route

Etichette per Route utili per identificare le proprietà specifiche del percorso da confrontare con altre.

Enum
ROUTE_LABEL_UNSPECIFIED Predefinito - non utilizzato.
DEFAULT_ROUTE La route "migliore" predefinita restituita per il calcolo delle route.
DEFAULT_ROUTE_ALTERNATE Un'alternativa al percorso "migliore" predefinito. Route come questa verranno restituite quando viene specificato ComputeRoutesRequest.compute_alternative_routes.
FUEL_EFFICIENT Percorso a basso consumo di carburante. Le route etichettate con questo valore vengono determinate come ottimizzate per i parametri Eco, ad esempio il consumo di carburante.

Gamba percorso

Incapsula un segmento tra tappe non via.

Rappresentazione JSON
{
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  }
}
Campi
distanceMeters

integer

La distanza percorsa dal percorso, in metri.

duration

string (Duration format)

Il tempo necessario per spostarti nella gamba. Se il route_preference è impostato su TRAFFIC_UNAWARE, questo valore è uguale a staticDuration. Se route_preference è TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL, questo valore viene calcolato tenendo conto delle condizioni del traffico.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

staticDuration

string (Duration format)

La durata del viaggio attraverso la tratta, calcolata senza tenere conto delle condizioni del traffico.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

polyline

object (Polyline)

La polilinea complessiva per questa gamba. Viene inclusa la polilinea di ogni step.

startLocation

object (Location)

La posizione iniziale di questa gamba. Potrebbe essere diverso da quello fornito (origin). Ad esempio, questo è il punto sulla strada quando origin non è vicino a una strada.

endLocation

object (Location)

La posizione finale di questa gamba. Potrebbe essere diverso da quello fornito (destination). Ad esempio, questo è il punto sulla strada quando destination non è vicino a una strada.

steps[]

object (RouteLegStep)

Un array che indica i segmenti all'interno di questa gamba. Ogni passaggio rappresenta un'istruzione di navigazione.

travelAdvisory

object (RouteLegTravelAdvisory)

Racchiude le informazioni aggiuntive di cui l'utente deve essere informato, ad esempio la possibile restrizione della zona di traffico e così via su una tratta di percorso.

Polilinea

Incapsula una polilinea codificata.

Rappresentazione JSON
{

  // Union field polyline_type can be only one of the following:
  "encodedPolyline": string,
  "geoJsonLinestring": {
    object
  }
  // End of list of possible types for union field polyline_type.
}
Campi
Campo di unione polyline_type. Incapsula il tipo di polilinea. Il valore predefinito è encoded_polyline. polyline_type può essere solo uno dei seguenti:
encodedPolyline

string

La codifica delle stringhe della polilinea mediante l'algoritmo di codifica delle polilinee.

geoJsonLinestring

object (Struct format)

Specifica una polilinea utilizzando il formato LineString GeoJSON

RouteLegStep

Incapsula un segmento di RouteLeg. Un passaggio corrisponde a una singola istruzione di navigazione. Le parti del percorso sono composte da una serie di passaggi.

Rappresentazione JSON
{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  },
  "travelAdvisory": {
    object (RouteLegStepTravelAdvisory)
  }
}
Campi
distanceMeters

integer

La distanza percorsa di questo passaggio, in metri. In alcuni casi, questo campo potrebbe non avere un valore.

staticDuration

string (Duration format)

La durata del viaggio in questo passaggio senza considerare le condizioni del traffico. In alcuni casi, questo campo potrebbe non avere un valore.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

polyline

object (Polyline)

La polilinea associata a questo passaggio.

startLocation

object (Location)

La posizione iniziale di questo passaggio.

endLocation

object (Location)

La posizione finale di questo passaggio.

navigationInstruction

object (NavigationInstruction)

Istruzioni di navigazione.

travelAdvisory

object (RouteLegStepTravelAdvisory)

Include le informazioni aggiuntive di cui l'utente deve essere informato, ad esempio la possibile limitazione di zona di traffico in un passaggio della gamba.

Manovra

Un insieme di valori che specifica l'azione di navigazione da intraprendere per il passaggio corrente (ad es. svolta a sinistra, unione, dritta e così via).

Enum
MANEUVER_UNSPECIFIED Non utilizzato.
TURN_SLIGHT_LEFT Gira leggermente verso sinistra.
TURN_SHARP_LEFT Gira tutto a sinistra.
UTURN_LEFT Fai una inversione a sinistra.
TURN_LEFT Gira a sinistra.
TURN_SLIGHT_RIGHT Gira leggermente verso destra.
TURN_SHARP_RIGHT Gira tutto a destra.
UTURN_RIGHT Fai una inversione a U verso destra.
TURN_RIGHT Gira a destra.
STRAIGHT Vai dritto.
RAMP_LEFT Prendi la rampa a sinistra.
RAMP_RIGHT Prendi la rampa giusta.
MERGE Entra nel traffico.
FORK_LEFT Prendi la forchetta sinistra.
FORK_RIGHT Prendi la forchetta giusta.
FERRY Prendi il traghetto.
FERRY_TRAIN Prendi il treno che porta al traghetto.
ROUNDABOUT_LEFT Alla sinistra, alla rotonda.
ROUNDABOUT_RIGHT Alla destra, alla rotonda.

Avviso di RouteLegStepTravel

Include le informazioni aggiuntive di cui l'utente deve essere informato, ad esempio la possibile limitazione di zona di traffico in un passaggio della gamba.

Rappresentazione JSON
{
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
Campi
speedReadingIntervals[]

object (SpeedReadingInterval)

NOTA: questo campo non è compilato al momento.

Avviso di RouteLegTravel

Racchiude le informazioni aggiuntive di cui l'utente deve essere informato, ad esempio la possibile restrizione della zona di traffico e così via su una tratta di percorso.

Rappresentazione JSON
{
  "tollInfo": {
    object (TollInfo)
  },
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
Campi
tollInfo

object (TollInfo)

Include informazioni sui pedaggi per la RouteLeg specifica. Questo campo viene compilato solo se prevediamo che i pedaggi siano presenti su RouteLeg. Se questo campo è impostato, ma il sottocampo stimatePrice non viene compilato, prevediamo che la strada contenga pedaggi, ma non conosciamo un prezzo stimato. Se questo campo non esiste, non è previsto alcun pedaggio per la RouteLeg.

speedReadingIntervals[]

object (SpeedReadingInterval)

Intervalli di lettura della velocità che descrivono nel dettaglio la densità del traffico. Applicabile in caso di preferenze di routing di TRAFFIC_AWARE e TRAFFIC_AWARE_OPTIMAL. Gli intervalli coprono l'intera polilinea del RouteLg senza sovrapposizione. Il punto iniziale di un intervallo specificato è uguale al punto finale dell'intervallo precedente.

Esempio:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speedReadingIntervals: [A,C), [C,D), [D,G).

Area visibile

Un'area visibile di latitudine-longitudine, rappresentata da due diagonali di fronte a low e high punti. Un'area visibile è considerata una regione chiusa, ovvero include il suo confine. I limiti di latitudine devono essere compresi tra -90 e 90 gradi inclusi, mentre i limiti di longitudine devono essere compresi tra -180 e 180 gradi inclusi. Esistono diversi casi:

  • Se low = high, l'area visibile è composta dal singolo punto.

  • Se low.longitude > high.longitude, l'intervallo di longitudine viene invertito (l'area visibile attraversa la linea di longitudine di 180 gradi).

  • Se low.longitude = -180 gradi e high.longitude = 180 gradi, l'area visibile include tutte le longitudini.

  • Se low.longitude = 180 gradi e high.longitude = -180 gradi, l'intervallo di longitudine è vuoto.

  • Se low.latitude > high.latitude, l'intervallo di latitudine è vuoto.

È necessario compilare sia low che high e la casella rappresentata non può essere vuota (come specificato dalle definizioni precedenti). Se l'area visibile è vuota, verrà visualizzato un errore.

Ad esempio, questa visualizzazione racchiude interamente New York:

{ "low": { " latitudine": 40.477398, "longitudine": -74.259087 }, "alto": { "latenza": 40.91618, "longitudine": -73.70018 } }

Rappresentazione JSON
{
  "low": {
    object (LatLng)
  },
  "high": {
    object (LatLng)
  }
}
Campi
low

object (LatLng)

Obbligatorio. Il punto più basso dell'area visibile.

high

object (LatLng)

Obbligatorio. Il punto più alto dell'area visibile.

Risultati di geocodifica

Contiene GeocodedWaypoints per l'origine, la destinazione e i punti intermedi. Compilato solo per i punti intermedi degli indirizzi.

Rappresentazione JSON
{
  "origin": {
    object (GeocodedWaypoint)
  },
  "destination": {
    object (GeocodedWaypoint)
  },
  "intermediates": [
    {
      object (GeocodedWaypoint)
    }
  ]
}
Campi
origin

object (GeocodedWaypoint)

Waypoint geocodificato origine.

destination

object (GeocodedWaypoint)

Waypoint geocodificato di destinazione.

intermediates[]

object (GeocodedWaypoint)

Un elenco di tappe intermedie geocodificate contenenti ciascuna un campo indice che corrisponde alla posizione zero-point del punto ordine nell'ordine in cui sono stati specificati nella richiesta.

Punto di accesso geocodificato

Dettagli sulle località utilizzate come tappe. Compilato solo per i punti intermedi degli indirizzi. Include dettagli sui risultati di geocodifica ai fini di determinare l'indirizzo geocodificato.

Rappresentazione JSON
{
  "geocoderStatus": {
    object (Status)
  },
  "type": [
    string
  ],
  "partialMatch": boolean,
  "placeId": string,
  "intermediateWaypointRequestIndex": integer
}
Campi
geocoderStatus

object (Status)

Indica il codice di stato risultante dall'operazione di geocodifica.

type[]

string

I tipi di risultato, sotto forma di zero o più tag di tipo. Tipi supportati: https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types

partialMatch

boolean

Indica che il geocodificatore non ha restituito una corrispondenza esatta per la richiesta originale, anche se è riuscita a far corrispondere parte dell'indirizzo richiesto. Ti consigliamo di esaminare la richiesta originale per verificare l'eventuale presenza di errori ortografici e/o un indirizzo incompleto.

placeId

string

L'ID del luogo per questo risultato.

intermediateWaypointRequestIndex

integer

L'indice del waypoint intermedio corrispondente nella richiesta. Compilato solo se il tappe corrispondente è un punto intermedio.