Ottieni un percorso con il trasporto pubblico

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 le altre, autobus, metropolitana e treni. Un percorso con il trasporto pubblico di solito include anche istruzioni su come raggiungere a piedi, da e tra stazioni di trasporto pubblico. Poiché un percorso con il trasporto pubblico in genere richiede di viaggiare con più modalità di viaggio, le modalità di richiesta del percorso e alcune parti della risposta sono diverse.

Differenza tra i percorsi per il trasporto pubblico e altri percorsi

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

Nell'API Routes, i passaggi sono sempre un'istruzione di navigazione per tutti i tipi di viaggi. Ogni istruzione di navigazione è quindi un passaggio. Una risposta di percorso di trasporto pubblico è molto simile a percorsi con altre modalità di viaggio, con alcune differenze chiave:

Differenze nelle richieste Differenze nelle risposte
Non puoi specificare tappe intermedie. Include i dettagli sul trasporto pubblico.
Impossibile visualizzare percorsi ecosostenibili Include i metadati per ogni modalità di viaggio che contiene il riepilogo dei passaggi per quella modalità di viaggio, in "stepsPanoramica" (per richiedere questi metadati, utilizza la maschera di campo "routes.legs.stepsPanoramica").
Impossibile specificare come e se includere i dati sul traffico
Impossibile specificare le caratteristiche del percorso da evitare
Puoi specificare solo transitPreferences per routingPreference. Per maggiori dettagli, vedi [TransitPreferences](reference/rest/v2/TransitPreferences).

Per maggiori informazioni sulla risposta restituita dall'API Routes, consulta Esaminare le risposte dei percorsi di transito.

Per visualizzare 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 di campo per ottenere i campi di risposta che vuoi. Consulta Richiedere i campi necessari per il percorso di trasporto pubblico.

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

Richiedi i campi del percorso di trasporto pubblico necessari

Richiedi i campi necessari del percorso di trasporto pubblico utilizzando le maschere di campo. La tabella seguente contiene alcune risposte suggerite per un percorso di transito e la maschera di campo da utilizzare per richiederle.

Per richiedere queste informazioni Utilizza questa maschera dei campi
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 dell'estremità di ogni tratto routes.legs.steps.endLocation
Esegui il routing della polilinea per ogni passaggio routes.legs.steps.polyline
Tipo di trasporto pubblico utilizzato per ogni passaggio routes.legs.steps.travelMode
Tariffa stimata per ogni tappa e percorso e Tariffa stimata 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

Ecco i parametri pertinenti per i percorsi con il trasporto pubblico:

Per Utilizza questo parametro Note
Seleziona mezzo di trasporto travelMode: "TRANSIT" Obbligatoria. Scopri di più.
Impostare un orario di arrivo o di partenza "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

OPPURE

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
Campo facoltativo. Puoi specificare arrive_time o departure_time. Se non viene specificato alcun orario, per departure_time viene impostato per impostazione predefinita l'ora di esecuzione attuale (now). Puoi impostare gli orari di arrivo e partenza solo nella finestra temporale seguente, con il tempo di esecuzione attuale (now) come riferimento:
  • fino a 7 giorni prima del giorno now inclusi
  • fino a 100 giorni dopo now
L'ora è espressa come timestamp nel formato "Zulu" UTC RFC3339. Scopri di più
Includere percorsi alternativi "computeAlternativeRoutes": true Campo facoltativo. Impostalo su true per consentire all'API Routes di calcolare fino a 3 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 di ritorno possono comunque utilizzare altre modalità di trasporto pubblico o anche altre modalità di trasporto pubblico, a seconda dell'efficienza del percorso e della disponibilità del viaggio preferito.

Campo 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"} Campo facoltativo. Specifica le preferenze per i percorsi con il trasporto pubblico. Scopri di più

Esempio: visualizzare un percorso per i trasporti pubblici

L'esempio seguente restituisce un percorso sul trasporto pubblico con i seguenti parametri:

  • Specifica le preferenze per gli spostamenti in treno e meno a piedi.

  • Consente di richiedere percorsi alternativi.

  • Fornisce una maschera del 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 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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}