Ottieni un percorso con il trasporto pubblico

Un percorso di trasporto pubblico fornisce istruzioni di navigazione utilizzando le opzioni di trasporto pubblico disponibili nella regione. Le opzioni di trasporto pubblico possono includere autobus, metropolitana e treni. Un percorso con il trasporto pubblico di solito include anche istruzioni per raggiungere a piedi, in entrata e tra le stazioni di trasporto pubblico. Poiché un percorso di trasporto pubblico in genere 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 dei mezzi di trasporto pubblico e altri percorsi

I percorsi di trasporto pubblico, che richiedi impostando TravelMode su TRANSIT, differiscono dai percorsi utilizzando opzioni di TravelMode diverse. Non puoi richiedere tutti gli stessi oggetti e le stesse opzioni e la risposta restituisce campi diversi, rispetto ad altre route.

Nell'API Routes, i passaggi sono come un'unica istruzione per tutti i tipi di viaggio. Ogni istruzione di navigazione è quindi un passo. Una risposta relativa a un percorso di trasporto pubblico è molto simile a quelle degli itinerari con altre modalità di viaggio, con alcune differenze chiave:

Differenze nelle richieste Differenze nelle risposte
Non puoi specificare waypoint intermedi. Include i dettagli sul trasporto pubblico.
Impossibile mostrare 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 del campo "routes.legs.stepsOverview").
Impossibile specificare come e se includere i dati sul traffico
Impossibile specificare le funzionalità di route da evitare
È possibile specificare solo transitPreferences per routingPreference. Per maggiori dettagli, consulta [TransitPreferences](reference/rest/v2/TransitPreferences).

Per ulteriori informazioni sulla risposta restituita dall'API Routes, consulta Esaminare le risposte per i percorsi dei mezzi di trasporto pubblico.

Per trovare un percorso con il trasporto pubblico

  1. Imposta il luogo di partenza e la destinazione.

  2. Imposta la modalità di viaggio su trasporto pubblico:

    travelMode: "TRANSIT"

  3. Aggiungi una maschera per i campi per ottenere i campi di risposta che ti interessano. Consulta Richiedere i campi del percorso del trasporto pubblico necessari.

  4. Se necessario, imposta parametri facoltativi. Vedi Impostare i parametri per un percorso di trasporto pubblico.

Richiedi i campi del percorso di trasporto pubblico che ti servono

Richiedi i campi del percorso di trasporto pubblico necessari utilizzando le maschere dei campi. La seguente tabella 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 per il campo
Tutti i dettagli del percorso routes.*
Tutti i dettagli sul trasporto pubblico routes.legs.steps.transitDetails
Posizione di partenza per ogni tratto routes.legs.steps.startLocation
Posizione di arrivo per ogni tratto 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 passo e percorso e tariffa localizzata routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Nota: transitFare viene fornito solo se l'API può determinare le informazioni sulle tariffe del trasporto pubblico per tutti i passaggi.

Testo localizzato per durata e distanza routes.localizedValues

Per ulteriori informazioni sull'impostazione delle maschere dei campi, consulta Scegliere i campi da restituire.

Impostare i parametri per un percorso di trasporto pubblico

Di seguito sono riportati i parametri pertinenti per i percorsi dei mezzi di trasporto pubblico:

Per Utilizza questo parametro Note
Seleziona la modalità di trasporto pubblico travelMode: "TRANSIT" obbligatorio. Scopri di più.
Imposta un orario di arrivo o di partenza "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

OR

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
Campo facoltativo. Puoi specificare arrive_time o except_time. Se non viene specificato nessuno dei due orari, per impostazione predefinita departure_time viene usata l'ora di esecuzione corrente (now). Puoi impostare gli orari di arrivo e partenza solo nell'intervallo di tempo seguente, con l'orario di esecuzione attuale (now) come riferimento:
  • fino a 7 giorni prima del giorno now
  • fino a 100 giorni inclusi dopo il giorno now
L'ora è espressa come timestamp in formato RFC3339 UTC "Zulu". Scopri di più
Includi percorsi alternativi "computeAlternativeRoutes": true Campo facoltativo. Imposta il valore su true per consentire all'API Routes di calcolare fino a tre route aggiuntive, 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 o solo altre modalità di trasporto pubblico, a seconda dell'efficienza del percorso attivo e della disponibilità della corsa preferita.

Campo facoltativo. Specifica le modalità di trasporto pubblico preferite. Scopri di più
Specifica le preferenze per il percorso di trasporto pubblico "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} Campo facoltativo. Specifica le preferenze di percorso del trasporto pubblico. Scopri di più

Esempio: ricevere un percorso sui mezzi di trasporto pubblico

L'esempio seguente restituisce un percorso sui trasporti pubblici con i seguenti parametri:

  • Specifica le preferenze per viaggiare in treno e meno tratti a piedi.

  • Richiede percorsi alternativi.

  • Fornisce una maschera di campo che restituisce i dettagli sul 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 le due route:

{
  "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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}