Un percorso con il trasporto pubblico fornisce indicazioni di navigazione utilizzando le opzioni di trasporto pubblico disponibili nella regione. Le opzioni di trasporto pubblico possono includere, tra le altre, autobus, metropolitane e treni. In genere, un percorso con il trasporto pubblico include anche le indicazioni per raggiungere le stazioni dei mezzi pubblici, per spostarsi da una stazione all'altra e per raggiungere la destinazione dalle stazioni. Poiché in genere un percorso con il trasporto pubblico richiede di viaggiare utilizzando più di una modalità di viaggio, la modalità di richiesta del percorso e alcune parti della risposta sono diverse.
Differenze tra i percorsi con il trasporto pubblico e altri percorsi
I percorsi con il trasporto pubblico, che richiedi impostando un travelMode di TRANSIT, sono diversi dai percorsi che utilizzano opzioni travelMode diverse. Non puoi richiedere tutti gli stessi oggetti e le stesse opzioni e la risposta restituisce campi diversi rispetto ad altri percorsi.
Nell'API Routes, i passaggi sono sempre un'indicazione di navigazione per tutti i tipi di viaggio. Ogni indicazione di navigazione è quindi un passaggio. Una risposta relativa a un percorso con il trasporto pubblico è molto simile a quella relativa a percorsi con altre modalità di viaggio, con alcune differenze fondamentali:
| Differenze nelle richieste | Differenze nelle risposte |
|---|---|
| Non puoi specificare waypoint intermedi. | Include i dettagli del trasporto pubblico. |
| Non puoi ottenere percorsi ecosostenibili | Include i metadati per ogni modalità di viaggio che contiene il riepilogo dei passaggi per quella modalità di viaggio, in `stepsOverview` (per richiedere questi metadati, utilizza la maschera di campo `routes.legs.stepsOverview`). |
| Non puoi specificare come e se includere i dati sul traffico | |
| Non puoi specificare le funzionalità del percorso da evitare | |
Puoi specificare solo transitPreferences per
routingPreference. Per i dettagli, vedi
TransitPreferences. |
Per ulteriori informazioni sulla risposta restituita dall'API Routes, vedi Esaminare le risposte relative ai percorsi con il trasporto pubblico.
Ottenere un percorso con il trasporto pubblico
Imposta il punto di partenza e la destinazione.
Imposta la modalità di viaggio su trasporto pubblico:
travelMode: "TRANSIT"Aggiungi una maschera di campo per ottenere i campi di risposta che ti interessano. Vedi Richiedere i campi del percorso con il trasporto pubblico di cui hai bisogno.
Se necessario, imposta i parametri facoltativi. Vedi Impostare i parametri per un percorso con il trasporto pubblico.
Richiedere i campi del percorso con il trasporto pubblico di cui hai bisogno
Richiedi i campi del percorso con il trasporto pubblico di cui hai bisogno utilizzando le maschere di campo. La tabella seguente contiene alcune risposte suggerite per un percorso con il trasporto pubblico e la maschera di campo da utilizzare per richiederle.
| Per richiedere queste informazioni | Utilizza questa maschera di campo |
|---|---|
| Tutti i dettagli del percorso | routes.* |
| Tutti i dettagli del trasporto pubblico | routes.legs.steps.transitDetails |
| Posizione di partenza per ogni tratta | routes.legs.steps.startLocation |
| Posizione di arrivo per ogni tratta | routes.legs.steps.endLocation |
| Polilinea del percorso per ogni passaggio | routes.legs.steps.polyline |
| Tipo di trasporto pubblico utilizzato per ogni passaggio | routes.legs.steps.travelMode |
| Tariffa stimata per ogni passaggio e per il percorso e tariffa stimata localizzata | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Nota: |
| Testo localizzato per durata e distanza | routes.localizedValues |
Per ulteriori informazioni sull'impostazione delle maschere di campo, vedi Scegliere i campi da restituire.
Impostare i parametri per un percorso con il trasporto pubblico
Di seguito sono riportati i parametri pertinenti per i percorsi con il trasporto pubblico:
| Per fare ciò | Utilizza questo parametro | Note |
|---|---|---|
| Seleziona la modalità di trasporto pubblico | travelMode: "TRANSIT" |
Obbligatorio. Scopri di più. |
| Imposta un'ora di arrivo o di partenza | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
OPPURE "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Facoltativo. Puoi specificare arrival_time o departure_time. Se
non viene specificata alcuna ora, departure_time assume come valore predefinito l'
ora di esecuzione corrente (now). Puoi impostare le ore di arrivo e
di partenza solo all'interno della seguente finestra temporale, con l'ora di esecuzione
corrente (now) come riferimento:
Nota: gli orari dei mezzi pubblici cambiano di frequente, i viaggi con i mezzi pubblici disponibili possono variare nel tempo e non è garantito che le previsioni fornite con largo anticipo siano coerenti. |
| Includi percorsi alternativi | "computeAlternativeRoutes": true |
Facoltativo. Imposta su true per fare in modo che Compute Routes calcoli fino a 3 percorsi aggiuntivi, se disponibili. Scopri di più |
| Specifica le preferenze per il tipo di trasporto pubblico | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Nota: se specifichi una modalità di viaggio preferita, i percorsi restituiti potrebbero comunque utilizzare altre modalità di trasporto pubblico, anche solo altre modalità di trasporto pubblico, a seconda dell'efficienza del percorso e della disponibilità del viaggio preferito. |
Facoltativo. Specifica le modalità di viaggio con il trasporto pubblico preferite. Scopri di più |
| Specifica le preferenze per il percorso con il trasporto pubblico | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Facoltativo. Specifica le preferenze di routing del trasporto pubblico. Scopri di più |
Esempio: ottenere un percorso con il trasporto pubblico
L'esempio seguente ottiene un percorso con il trasporto pubblico con i seguenti parametri:
Specifica le preferenze per i viaggi in treno e per i tratti a piedi più brevi.
Richiede percorsi alternativi.
Fornisce una maschera di campo che restituisce i dettagli del trasporto pubblico:
curl -X POST -H 'content-type: application/json' -d '{ "origin": { "address": "Humberto Delgado Airport, Portugal" }, "destination": { "address": "Basílica of Estrela, Praça da Estrela, 1200-667 Lisboa, Portugal" }, "travelMode": "TRANSIT", "computeAlternativeRoutes": true, "transitPreferences": { routingPreference: "LESS_WALKING", allowedTravelModes: ["TRAIN"] }, }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.legs.steps.transitDetails' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
La risposta mostra i campi route.legs.steps.transitDetails per i due percorsi:
{ "routes": [ { "legs": [ { "steps": [ {}, {}, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73532, "longitude": -9.14543 } } }, "arrivalTime": "2023-08-26T10:49:42Z", "departureStop": { "name": "Aeroporto", "location": { "latLng": { "latitude": 38.769047799999996, "longitude": -9.1284593 } } }, "departureTime": "2023-08-26T10:32:10Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "11:49" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:32" }, "timeZone": "Europe/Lisbon" } }, "headsign": "São Sebastião", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Vermelha", "color": "#f23061", "nameShort": "Vm", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 11 } }, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Rato", "location": { "latLng": { "latitude": 38.7201022, "longitude": -9.1540562 } } }, "arrivalTime": "2023-08-26T11:01:37Z", "departureStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73527, "longitude": -9.1455200000000012 } } }, "departureTime": "2023-08-26T10:57:57Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "12:01" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:57" }, "timeZone": "Europe/Lisbon" } }, "headsign": "Rato", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Amarela", "color": "#f2c200", "nameShort": "Am", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 4 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }