Um trajeto de transporte público fornece instruções de navegação usando o transporte público disponíveis na região. As opções de transporte público podem incluir ônibus, metrôs e trens, entre outros. Um trajeto de transporte público também geralmente inclui instruções sobre a pé para, de e entre estações de transporte público. Como um trajeto de transporte público normalmente exige que você viaje usando mais de um meio de transporte, como você solicitar a rota e algumas partes da resposta são diferentes.
Como os trajetos de transporte público diferem de outros trajetos
As rotas de transporte público, que você solicita definindo um travelMode de TRANSIT, são diferentes das rotas que usam outras opções de travelMode. Não é possível solicitar todos os mesmos objetos e opções, e a resposta retorna campos diferentes, quando comparado com outros trajetos.
Na API Routes, as etapas são consistentemente uma instrução de navegação. em todos os tipos de viagem. Portanto, cada instrução de navegação é uma etapa. Transporte público a resposta a trajetos é muito semelhante a rotas com outros meios de transporte, com algumas diferenças:
Solicitar diferenças | Diferenças de resposta |
---|---|
Não é possível especificar waypoints intermediários. | Inclui detalhes de transporte público. |
Não é possível acessar trajetos ecológicos | Inclui metadados de cada meio de transporte que contém o resumo das etapas para esse meio de transporte, em `stepsOverview`, para solicitar esses metadados, use o máscara de campo `routes.legs.stepsOverview`). |
Não é possível especificar como e se é possível incluir dados de tráfego | |
Não é possível especificar os elementos de rota a serem evitados | |
Só é possível especificar transitPreferences para
routingPreference . Para mais detalhes, consulte
[TransitPreferences](reference/rest/v2/TransitPreferences). |
Para mais informações sobre a resposta retornada pela API Routes, consulte Analisar as respostas de trajetos de transporte público.
Para consultar um trajeto de transporte público
Defina a origem e o destino.
Defina o meio de transporte como "Transporte público":
travelMode: "TRANSIT"
Adicione uma máscara de campo para receber os campos de resposta que você quer. Consulte Solicite os campos necessários de trajeto de transporte público.
Se necessário, defina parâmetros opcionais. Consulte Definir parâmetros para um trajeto de transporte público
Solicite os campos de trajeto de transporte público necessários
Use máscaras de campo para solicitar os campos de trajetos de transporte público necessários. A tabela a seguir contém algumas respostas sugeridas para um transporte público trajeto e a máscara de campo usada para solicitá-las.
Para solicitar essas informações | Usar esta máscara de campo |
---|---|
Todos os detalhes do trajeto | routes.* |
Todos os detalhes de transporte público | routes.legs.steps.transitDetails |
Local de início para cada trecho | routes.legs.steps.startLocation |
Local de término de cada etapa | routes.legs.steps.endLocation |
Polilinha do trajeto para cada etapa | routes.legs.steps.polyline |
Tipo de transporte público usado em cada etapa | routes.legs.steps.travelMode |
Tarifa estimada para cada etapa e trajeto Tarifa estimada localizada | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Observação: |
Texto localizado para duração e distância | routes.localizedValues |
Para mais informações sobre como configurar máscaras de campo, consulte Escolha os campos que serão retornados.
Definir parâmetros para um trajeto de transporte público
Estes são os parâmetros relevantes para rotas de transporte público:
Para fazer isto | Usar este parâmetro | Observações |
---|---|---|
Selecionar meio de transporte público | travelMode: "TRANSIT" |
Obrigatório. Saiba mais. |
Definir um horário de chegada ou partida | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
OU "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Opcional. Você pode especificar arrival_time ou departure_time. Se
nenhum horário for especificado, o departure_time será padronizado como
no tempo de execução atual (now ). Você pode definir os horários
horários de partida somente no período seguinte, com o horário
ambiente de execução (now ) como referência:
|
Incluir rotas alternativas | "computeAlternativeRoutes": true |
Opcional. Defina como "true" para que a API Routes calcule até três rotas adicionais, quando disponíveis. Saiba mais |
Especifique preferências para o tipo de transporte público | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Observação: se você especificar um meio de transporte preferido, os trajetos retornados ainda poderão usar outros meios de transporte público, dependendo a eficiência do trajeto e a disponibilidade dos locais viajar. |
Opcional. Especifique os meios de transporte preferidos. Saiba mais |
Especificar preferências para o trajeto de transporte público | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Opcional. Especifique as preferências de trajeto de transporte público. Saiba mais |
Exemplo: ver um trajeto no transporte público
O exemplo a seguir mostra um trajeto em transporte público com os seguintes parâmetros:
Especifica preferências para viajar de trem e caminhar menos.
Solicita rotas alternativas.
Fornece uma máscara de campo que retorna os detalhes do transporte público:
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'
A resposta mostra os campos route.legs.steps.transitDetails
para as duas rotas:
{ "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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }