Un percorso con il trasporto pubblico fornisce istruzioni di navigazione utilizzando le opzioni di trasporto pubblico disponibili nella regione. Le opzioni di trasporto pubblico possono includere, tra gli altri, autobus, metropolitane e treni. Un percorso con il trasporto pubblico di solito include anche le istruzioni per raggiungere a piedi le stazioni di transito, per spostarsi tra queste e per raggiungere la destinazione. Poiché un percorso con il trasporto pubblico in genere richiede di viaggiare utilizzando più di una modalità di viaggio, il modo in cui richiedi il percorso e alcune parti della risposta sono diversi.
Differenze tra i percorsi di trasporto pubblico e altri percorsi
I percorsi con il trasporto pubblico, che richiedi impostando un travelMode su TRANSIT, differiscono dai percorsi che utilizzano altre opzioni di travelMode. Non puoi richiedere tutti gli stessi oggetti e opzioni e la risposta restituisce campi diversi rispetto ad altri percorsi.
Nell'API Routes, i passaggi sono sempre un'istruzione di navigazione per tutti i tipi di viaggio. Quindi ogni istruzione di navigazione è un passaggio. Una risposta di un percorso con il trasporto pubblico è molto simile ai percorsi con altre modalità di viaggio, con alcune differenze fondamentali:
| Differenze tra le richieste | Differenze nelle risposte |
|---|---|
| Non puoi specificare waypoint intermedi. | Include i dettagli del trasporto pubblico. |
| Impossibile 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`). |
| Impossibile specificare se e come includere i dati sul traffico | |
| Impossibile specificare le caratteristiche del percorso da evitare | |
Puoi specificare solo transitPreferences per routingPreference. Per maggiori dettagli, vedi TransitPreferences. |
Per ulteriori informazioni sulla risposta restituita dall'API Routes, consulta Esamina le risposte relative ai percorsi con il trasporto pubblico.
Per ottenere un percorso con il trasporto pubblico
Imposta il luogo 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. Consulta Richiedi i campi del routing transitivo di cui hai bisogno.
Se necessario, imposta i parametri facoltativi. Consulta Imposta i parametri per un percorso di trasporto pubblico.
Richiedi i campi del routing transitivo di cui hai bisogno
Richiedi i campi del percorso di trasporto pubblico di cui hai bisogno utilizzando le maschere di campo. La tabella seguente contiene alcune risposte suggerite per un percorso di 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 sul trasporto pubblico | routes.legs.steps.transitDetails |
| Posizione iniziale per ogni tappa | routes.legs.steps.startLocation |
| Località di arrivo per ogni tappa | routes.legs.steps.endLocation |
| Polilinea del percorso per ogni passaggio | routes.legs.steps.polyline |
| Tipo di trasporto 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, consulta Scegli i campi da restituire.
Imposta i parametri per una route di transito
Ecco i parametri pertinenti per i percorsi di trasporto pubblico:
| Per farlo: | Utilizza questo parametro | Note |
|---|---|---|
| Seleziona la modalità Mezzi pubblici | travelMode: "TRANSIT" |
Obbligatorio. Ulteriori informazioni. |
| Imposta un orario 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 specificato nessuno dei due orari, departure_time viene impostato per impostazione predefinita sull'ora di esecuzione corrente (now). Puoi impostare gli orari di arrivo e partenza solo all'interno della seguente finestra temporale, con l'ora di esecuzione corrente (now) come riferimento:
Nota: gli orari del trasporto pubblico cambiano di frequente, le corse disponibili possono variare nel tempo e non è garantito che i risultati delle previsioni siano coerenti con largo anticipo. |
| Includi itinerari 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 trasporto pubblico preferite. Scopri di più |
| Specifica le preferenze per il routing transitivo | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Facoltativo. Specifica le preferenze di routing transitivo. Scopri di più |
Esempio: trova un percorso con il trasporto pubblico
L'esempio seguente recupera un percorso con il trasporto pubblico con i seguenti parametri:
Specifica le preferenze per i viaggi in treno e meno tratti a piedi.
Richiede itinerari 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }