Exemplos de rotas

Desenvolvedores do Espaço Econômico Europeu (EEE)

Este produto está no status legado. A partir de outubro de 2026, a API Directions (legada) não poderá mais ser ativada para novos projetos na nuvem do Google Cloud. Os projetos atuais continuam totalmente compatíveis. Para novos recursos e melhor desempenho, migre para a API Routes.

Exemplos de solicitação

A solicitação a seguir retorna rotas de carro de Toronto, Ontário, para Montreal, Quebec.

URL

https://maps.googleapis.com/maps/api/directions/json?destination=Montreal
  &origin=Toronto
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=YOUR_API_KEY'

Ao mudar os parâmetros mode e avoid, a solicitação inicial pode ser modificada para retornar rotas de um passeio de bicicleta que evite as principais rodovias.

URL

https://maps.googleapis.com/maps/api/directions/json
  ?avoid=highways
  &destination=Montreal
  &mode=bicycling
  &origin=Toronto
  &key=YOUR_API_KEYYOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&avoid=highways&mode=bicycling&key=YOUR_API_KEY'YOUR_API_KEY'

A solicitação a seguir pesquisa rotas de transporte público do Brooklyn, Nova York, para o Queens, Nova York. A solicitação não especifica um departure_time, então o horário de partida é definido como o horário atual:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Queens
  &mode=transit
  &origin=Brooklyn
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Brooklyn&destination=Queens&mode=transit&keyYOUR_API_KEY'

A solicitação de transporte público a seguir inclui um horário de partida específico.

Observação: neste exemplo, o horário de partida é especificado como 30 de julho de 2012 às 9h45. Para evitar um erro, mude o parâmetro para um horário no futuro antes de enviar a solicitação.

URL

https://maps.googleapis.com/maps/api/directions/json
  ?departure_time=1343641500
  &destination=Queens
  &mode=transit
  &origin=Brooklyn
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Brooklyn&destination=Queens&mode=transit&departure_time=1343641500&key=YOUR_API_KEY'

A solicitação a seguir usa Plus Codes para retornar rotas de carro de H8MW+WP para GCG2+3M em Calcutá, Índia.

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=GCG2%2B3M%20Kolkata%20India
  &origin=H8MW%2BWP%20Kolkata%20India
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=H8MW%2BWP%20Kolkata%20India&destination=GCG2%2B3M%20Kolkata%20India&key=YOUR_API_KEY'

A solicitação a seguir retorna rotas de carro de Glasgow, Reino Unido, para Perth, Reino Unido, usando IDs de lugar.

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=place_id%3AChIJA01I-8YVhkgRGJb0fW4UX7Y
  &origin=place_id%3AChIJ685WIFYViEgRHlHvBbiD5nE
  &keyYOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id%3AChIJ685WIFYViEgRHlHvBbiD5nE&destination=place_id%3AChIJA01I-8YVhkgRGJb0fW4UX7Y&key=YOUR_API_KEY'

Meios de transporte

Ao calcular rotas, você pode especificar o mode de transporte a ser usado. Por padrão, as rotas são calculadas como rotas de driving. Os seguintes meios de transporte são aceitos:

  • driving (padrão) indica rotas de carro padrão usando a rede viária.
  • walking solicita rotas a pé por faixas de pedestre e calçadas (quando disponível).
  • bicycling solicita rotas de bicicleta usando ciclovias e ruas preferenciais (quando disponível).
  • transit solicita rotas usando trajetos de transporte público (quando disponível). Se você definir o modo como transit, poderá especificar um departure_time ou um arrival_time. Se nenhum horário for especificado, o departure_time será definido como o horário atual (ou seja, o horário de partida será o horário atual). Também é possível incluir um transit_mode e/ou um transit_routing_preference.

Observação:é possível que as rotas a pé e as rotas de bicicleta não incluam caminhos claros para pedestres ou ciclistas. Portanto, essas rotas retornarão warnings no resultado, que você precisa mostrar ao usuário.

Informações sobre o trânsito

As informações de trânsito são usadas quando todas as condições a seguir se aplicam (estas são as condições necessárias para receber o campo duration_in_traffic na resposta do Directions):

  • O parâmetro mode de viagem é driving ou não está especificado (driving é o modo de viagem padrão).
  • A solicitação inclui um parâmetro departure_time válido. O departure_time pode ser definido como a hora atual ou algum horário no futuro. Seu valor não pode estar no passado.
  • A solicitação não inclui waypoints com parada. Se a solicitação incluir waypoints, use o prefixo via: em cada um deles para influenciar o trajeto, mas evite paradas. Por exemplo,
    &waypoints=via:San Francisco|via:Mountain View|...

Se quiser, inclua o parâmetro traffic_model na solicitação para especificar as premissas que serão usadas no cálculo do tempo no trânsito.

O URL a seguir inicia uma solicitação de rotas para uma viagem de Boston, MA, para Concord, MA, passando por Charlestown e Lexington. A solicitação inclui um horário de partida, atendendo a todos os requisitos para retornar o campo duration_in_traffic na resposta do Directions.

URL

https://maps.googleapis.com/maps/api/directions/json
  ?departure_time=now
  &destination=Concord%2C%20MA
  &origin=Boston%2C%20MA
  &waypoints=via%3ACharlestown%2CMA%7Cvia%3ALexington%2CMA
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Boston%2C%20MA&destination=Concord%2C%20MA&waypoints=via%3ACharlestown%2CMA%7Cvia%3ALexington%2CMA&departure_time=now&key=YOUR_API_KEY'

Pontos de referência

Ao calcular trajetos usando a API Directions (legada), você pode especificar waypoints para retornar um trajeto que inclua passagens ou paradas em locais intermediários. É possível adicionar waypoints a rotas de carro, a pé ou de bicicleta, mas não a rotas de transporte público.

Especifique os locais no parâmetro waypoints.

Você pode fornecer um ou mais locais separados pelo caractere de barra vertical (| ou %7C), na forma de um ID de lugar, um endereço ou coordenadas de latitude/longitude. Por padrão, o serviço Directions calcula um trajeto usando os waypoints na ordem em que são fornecidos. A precedência para analisar o valor do waypoint é o ID de lugar, as coordenadas de latitude/longitude e o endereço.

  • Se você transmitir um ID de lugar, ele precisará ser prefixado com place_id:. Você pode recuperar IDs de lugar das APIs Geocoding e Places (incluindo o Place Autocomplete). Para um exemplo que usa IDs de lugar do Place Autocomplete, consulte Place Autocomplete e Directions. Para mais informações sobre IDs de lugar, consulte a visão geral de IDs de lugar.

    Para maior eficiência e precisão, use IDs de lugar sempre que possível. Esses IDs são explicitamente exclusivos, como um par de valores de latitude/longitude, e oferecem benefícios de geocodificação para rotas, como pontos de acesso e variáveis de trânsito. Ao contrário de um endereço, os IDs não exigem que o serviço realize uma pesquisa ou uma solicitação intermediária de Place Details. Portanto, o desempenho é melhor.

  • Se você transmitir coordenadas de latitude/longitude, os valores vão diretamente para o servidor de front-end para calcular as rotas sem geocodificação. Os pontos são ajustados às vias e podem não fornecer a precisão que seu app precisa. Use coordenadas quando tiver certeza de que os valores realmente especificam os pontos que seu app precisa para o trajeto, sem considerar possíveis pontos de acesso ou outros detalhes de geocodificação. Verifique se uma vírgula (%2C), e não um espaço (%20), separa os valores de latitude e longitude.
  • Se você transmitir um endereço, o serviço de rotas vai geocodificar a string e convertê-la em coordenadas de latitude/longitude para calcular as rotas. Se o valor do endereço for ambíguo, ele poderá evocar uma pesquisa para eliminar a ambiguidade de endereços semelhantes. Por exemplo, "Rua 1" pode ser um valor completo ou parcial para "Rua 1 NE" ou "Rua 1 SE". Esse resultado pode ser diferente do retornado pela API Geocoding. Para evitar possíveis interpretações incorretas, use IDs de lugar. Consulte Solução de problemas nos resultados da minha solicitação de trajeto.

Como alternativa, é possível fornecer um conjunto codificado de pontos usando o algoritmo de polilinha codificada. Um conjunto codificado é útil para um grande número de waypoints, porque o URL é significativamente mais curto. Todos os serviços da Web têm um limite de URL de 16.384 caracteres.

  • As polilinhas codificadas precisam ter o prefixo enc: e ser seguidas por dois pontos (:). Por exemplo: waypoints=enc:gfo}EtohhU:.
  • Também é possível incluir várias polilinhas codificadas, separadas pelo caractere de barra vertical (|). Por exemplo, waypoints=via:enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:| via:enc:udymA{~bxM:.

O URL a seguir inicia uma solicitação de rotas para uma viagem entre Boston, MA e Concord, MA, com paradas em Charlestown e Lexington, nessa ordem. O exemplo usa os endereços:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Concord%2C%20MA
  &origin=Boston%2C%20MA
  &waypoints=via%3ACharlestown%2CMA%7Cvia%3ALexington%2CMA
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Boston%2C%20MA&destination=Concord%2C%20MA&waypoints=via%3ACharlestown%2CMA%7Cvia%3ALexington%2CMA&key=YOUR_API_KEY'

Influenciar rotas com pontos de parada e passagem

Para cada waypoint na solicitação, a resposta de rotas adiciona uma entrada à matriz legs para fornecer os detalhes das paradas nesse trecho da viagem.

Se você quiser influenciar o trajeto usando waypoints sem adicionar uma parada, adicione o prefixo via: ao waypoint. Os waypoints com o prefixo via: não adicionam uma entrada à matriz legs, mas direcionam o trajeto pelo waypoint.

O URL a seguir modifica a solicitação anterior para que o trajeto passe por Lexington sem parar:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Concord%2C%20MA
  &origin=Boston%2C%20MA
  &waypoints=Charlestown%2CMA%7Cvia%3ALexington%2CMA
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Boston%2C%20MA&destination=Concord%2C%20MA&waypoints=Charlestown%2CMA%7Cvia%3ALexington%2CMA&key=YOUR_API_KEY'

O prefixo via: é mais eficaz ao criar rotas em resposta ao usuário arrastando os waypoints no mapa. Isso permite que o usuário veja como será o trajeto final em tempo real e ajuda a garantir que os waypoints sejam colocados em locais acessíveis à API Directions (legada).

O URL a seguir solicita pontos de referência usando coordenadas de latitude/longitude:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Perth%2C%20AU
  &origin=Sydney%2C%20AU
  &waypoints=via%3A-37.81223%2C144.96254%7Cvia%3A-34.92788%2C138.60008
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Sydney%2C%20AU&destination=Perth%2C%20AU&waypoints=via%3A-37.81223%2C144.96254%7Cvia%3A-34.92788%2C138.60008&key=YOUR_API_KEY'

Veja a mesma solicitação, usando uma polilinha codificada:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Perth%2C%20AU
  &origin=Sydney%2C%20AU
  &waypoints=via%3Aenc%3AlexeF%7B~wsZejrPjtye%40%3A
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Sydney%2C%20AU&destination=Perth%2C%20AU&waypoints=via%3Aenc%3AlexeF%7B~wsZejrPjtye%40%3A&key=YOUR_API_KEY'

É possível misturar livremente um especificador via: com modificadores de local. Exemplo:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Perth%2C%20AU
  &origin=Sydney%2C%20AU
  &waypoints=side_of_road%3Avia%3Aenc%3AlexeF%7B~wsZejrPjtye%40%3A
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Sydney%2C%20AU&destination=Perth%2C%20AU&waypoints=side_of_road%3Avia%3Aenc%3AlexeF%7B~wsZejrPjtye%40%3A&key=YOUR_API_KEY'

Otimizar seus pontos de referência

Por padrão, o serviço Directions calcula um trajeto pelos waypoints fornecidos, na ordem em que são apresentados. Como opção, você pode passar optimize:true como o primeiro argumento dentro do parâmetro waypoints para permitir que o serviço Directions otimize o trajeto fornecido reorganizando os waypoints em uma ordem mais eficaz. Essa otimização é um aplicativo do problema do vendedor de viagens. O tempo do percurso é o principal fator a ser otimizado, mas demais fatores, como distância, quantidade de curvas e outros, podem ser considerados para determinar o trajeto mais eficaz. Todos os waypoints precisam ser paradas para que o serviço Directions otimize o trajeto.

Se você instruir o serviço Directions a otimizar a ordem dos seus waypoints, a ordem será retornada no campo waypoint_order dentro do objeto routes. O campo waypoint_order retorna valores baseados em zero.

O exemplo a seguir calcula uma viagem de carro de Adelaide, no sul da Austrália, para cada uma das principais regiões vinícolas do sul da Austrália usando a otimização de rotas.

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Adelaide%2C%20SA
  &origin=Adelaide%2C%20SA
  &waypoints=optimize%3Atrue%7CBarossa%20Valley%2C%20SA%7CClare%2C%20SA%7CConnawarra%2C%20SA%7CMcLaren%20Vale%2C%20SA
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Adelaide%2C%20SA&destination=Adelaide%2C%20SA&waypoints=optimize%3Atrue%7CBarossa%20Valley%2C%20SA%7CClare%2C%20SA%7CConnawarra%2C%20SA%7CMcLaren%20Vale%2C%20SA&key=YOUR_API_KEY'

A inspeção do trajeto calculado vai indicar que o cálculo usa waypoints na seguinte ordem:

"waypoint_order": [ 3, 2, 0, 1 ]

Restrições

As rotas podem ser calculadas aderindo a certas restrições. As restrições são indicadas pelo uso do parâmetro avoid e um argumento para esse parâmetro que indica a restrição a ser evitada. As seguintes restrições são permitidas:

  • avoid=tolls
  • avoid=highways
  • avoid=ferries

É possível solicitar um trajeto que evite qualquer combinação de pedágios, rodovias e balsas transmitindo as duas restrições ao parâmetro avoid. Por exemplo: avoid=tolls|highways|ferries.

Observação:a adição de restrições não impede trajetos que incluam o recurso restrito, mas prioriza trajetos mais favoráveis.

Sistemas de unidades

Os resultados de rotas contêm campos text em distance que podem ser mostrados ao usuário para indicar a distância de uma determinada "etapa" do trajeto. Por padrão, esse texto usa o sistema de unidades do país ou da região de origem.

Por exemplo, um trajeto de "Chicago, IL" para "Toronto, ONT" mostra resultados em milhas, enquanto o trajeto inverso mostra resultados em quilômetros. É possível substituir esse sistema de medidas configurando outro sistema explicitamente no parâmetro units da solicitação, transmitindo um dos seguintes valores:

  • metric especifica o uso do sistema métrico. Distâncias textuais são retornadas em quilômetros e metros.
  • imperial especifica o uso do sistema imperial (inglês). Distâncias textuais são retornadas em milhas e pés.

Observação : essa configuração do sistema de medidas afeta apenas o text mostrado nos campos distance. Os campos distance também contêm values, que são sempre expressos em metros.

Direcionamento de região

É possível configurar o serviço Directions para retornar resultados de uma região específica usando o parâmetro region. Esse parâmetro usa um argumento ccTLD (domínio de nível superior com código de país) de dois caracteres que especifica a polarização de região. A maioria dos códigos ccTLD é idêntica aos códigos ISO 3166-1 alfa-2, com algumas exceções notáveis. Por exemplo, o ccTLD do Reino Unido é "uk" (.co.uk), enquanto o código ISO 3166-1 é "gb" (tecnicamente para a entidade "Reino Unido da Grã-Bretanha e Irlanda do Norte"). Consulte os detalhes de cobertura da Plataforma Google Maps para ver as regiões com disponibilidade.

Você pode usar qualquer domínio em que o aplicativo principal do Google Maps tenha lançado rotas de carro.

Por exemplo, uma solicitação de rotas de "Toledo" para "Madrid" retorna resultados adequados quando region é definido como es e "Toledo" é interpretado como a cidade espanhola:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Madrid
  &origin=Toledo
  &region=es
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Toledo&destination=Madrid®ion=es&key=YOUR_API_KEY'

JSON

      
{
  "geocoded_waypoints":
    [
      {
        "geocoder_status": "OK",
        "place_id": "ChIJ8f21C60Lag0R_q11auhbf8Y",
        "types": ["locality", "political"],
      },
      {
        "geocoder_status": "OK",
        "place_id": "ChIJgTwKgJcpQg0RaSKMYcHeNsQ",
        "types": ["locality", "political"],
      },
    ],
  "routes":
    [
      {
        "bounds":
          {
            "northeast": { "lat": 40.4165207, "lng": -3.7026134 },
            "southwest": { "lat": 39.862808, "lng": -4.029406799999999 },
          },
        "copyrights": "Map data ©2022 Inst. Geogr. Nacional",
        "legs":
          [
            {
              "distance": { "text": "74.3 km", "value": 74327 },
              "duration": { "text": "57 mins", "value": 3446 },
              "end_address": "Madrid, Spain",
              "end_location": { "lat": 40.4165207, "lng": -3.705076 },
              "start_address": "Toledo, Spain",
              "start_location": { "lat": 39.862808, "lng": -4.0273727 },
              "steps":
                [
                  {
                    "distance": { "text": "0.6 km", "value": 615 },
                    "duration": { "text": "2 mins", "value": 106 },
                    "end_location":
                      { "lat": 39.8681019, "lng": -4.029378299999999 },
                    "html_instructions": "Head <b>northwest</b> on <b>Av. de la Reconquista</b> toward <b>C. de la Diputación</b>",
                    "polyline":
                      {
                        "points": "quhrF`rqWCBQJUJm@PQFg@Ni@JeBh@}@XaD|@{@Vk@Ns@RUFoA^u@R_AXwA`@WHMBG@C?E?GAC?IC",
                      },
                    "start_location": { "lat": 39.862808, "lng": -4.0273727 },
                    "travel_mode": "DRIVING",
                  },
                  // Additional steps omitted for brevity
                ],
              "traffic_speed_entry": [],
              "via_waypoint": [],
            },
          ],
        "overview_polyline":
          {
            "points": "quhrF`rqWcHzBaNzDeG~A][?k@lA{Dr@mBR]HmA[WQDWE[g@mAeE... (truncated for brevity)",
          },
        "summary": "A-42",
        "warnings": [],
        "waypoint_order": [],
      },
    ],
  "status": "OK",
}
      
    

XML

      
<DirectionsResponse>
 <status>OK</status>
 <route>
  <summary>A-42</summary>
  <leg>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>39.8628080</lat>
     <lng>-4.0273727</lng>
    </start_location>
    <end_location>
     <lat>39.8681019</lat>
     <lng>-4.0293783</lng>
    </end_location>
    <polyline>
     <points>quhrF`rqWCBQJUJm@PQFg@Ni@JeBh@}@XaD|@{@Vk@Ns@RUFoA^u@R_AXwA`@WHMBG@C?E?GAC?IC</points>
    </polyline>
    <duration>
     <value>106</value>
     <text>2 mins</text>
    </duration>
    <html_instructions>Head &lt;b&gt;northwest&lt;/b&gt; on &lt;b&gt;Av. de la Reconquista&lt;/b&gt; toward &lt;b&gt;C. de la Diputación&lt;/b&gt;</html_instructions>
    <distance>
     <value>615</value>
     <text>0.6 km</text>
    </distance>
   </step>
   <!-- Additional steps omitted for brevity -->
   <duration>
    <value>3446</value>
    <text>57 mins</text>
   </duration>
   <distance>
    <value>74327</value>
    <text>74.3 km</text>
   </distance>
   <start_location>
    <lat>39.8628080</lat>
    <lng>-4.0273727</lng>
   </start_location>
   <end_location>
    <lat>40.4165207</lat>
    <lng>-3.7050760</lng>
   </end_location>
   <start_address>Toledo, Spain</start_address>
   <end_address>Madrid, Spain</end_address>
  </leg>
  <copyrights>Map data ©2022 Inst. Geogr. Nacional</copyrights>
  <overview_polyline>
   <points>quhrF`rqWcHzBaNzDeG~A][?k@lA{Dr@mBR]HmA[WQDWE[g@mAeE... (truncated for brevity)</points>
  </overview_polyline>
  <bounds>
   <southwest>
    <lat>39.8628080</lat>
    <lng>-4.0294068</lng>
   </southwest>
   <northeast>
    <lat>40.4165207</lat>
    <lng>-3.7026134</lng>
   </northeast>
  </bounds>
 </route>
 <geocoded_waypoint>
  <geocoder_status>OK</geocoder_status>
  <type>locality</type>
  <type>political</type>
  <place_id>ChIJ8f21C60Lag0R_q11auhbf8Y</place_id>
 </geocoded_waypoint>
 <geocoded_waypoint>
  <geocoder_status>OK</geocoder_status>
  <type>locality</type>
  <type>political</type>
  <place_id>ChIJgTwKgJcpQg0RaSKMYcHeNsQ</place_id>
 </geocoded_waypoint>
</DirectionsResponse>
      
      

Uma solicitação de rotas de "Toledo" para "Madrid" enviada sem um parâmetro region não retorna resultados, porque "Toledo" é interpretada como a cidade em Ohio, e não na Espanha:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=Madrid
  &origin=Toledo
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=Toledo&destination=Madrid&key=YOUR_API_KEY'

JSON

      
{
  "geocoded_waypoints":
    [
      {
        "geocoder_status": "OK",
        "place_id": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw",
        "types": ["locality", "political"],
      },
      {
        "geocoder_status": "OK",
        "place_id": "ChIJgTwKgJcpQg0RaSKMYcHeNsQ",
        "types": ["locality", "political"],
      },
    ],
  "routes": [],
  "status": "ZERO_RESULTS",
}
      
      

XML

      
<DirectionsResponse>
 <status>ZERO_RESULTS</status>
 <geocoded_waypoint>
  <geocoder_status>OK</geocoder_status>
  <type>locality</type>
  <type>political</type>
  <place_id>ChIJeU4e_C2HO4gRRcM6RZ_IPHw</place_id>
 </geocoded_waypoint>
 <geocoded_waypoint>
  <geocoder_status>OK</geocoder_status>
  <type>locality</type>
  <type>political</type>
  <place_id>ChIJgTwKgJcpQg0RaSKMYcHeNsQ</place_id>
 </geocoded_waypoint>
</DirectionsResponse>
      
      

Modificadores de local

É possível usar modificadores de local para indicar como os motoristas devem se aproximar de um determinado local, usando o parâmetro side_of_road para especificar qual lado da via usar ou especificando um rumo para indicar a direção correta da viagem. Esses modificadores podem ser combinados livremente com o modificador via: para waypoints intermediários.

Especificar que as rotas precisam passar por um lado específico da via

Ao especificar um waypoint, você pode solicitar que o trajeto passe pelo lado da via em que o waypoint está usando o prefixo side_of_road:. Por exemplo, esta solicitação de rotas vai retornar um trajeto longo para que o veículo termine no lado da via para onde o waypoint foi direcionado:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=side_of_road%3A37.7663444%2C-122.4412006
  &origin=37.7680296%2C-122.4375126
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=37.7680296%2C-122.4375126&destination=side_of_road%3A37.7663444%2C-122.4412006&key=YOUR_API_KEY'

Ao usar side_of_road: com polilinhas codificadas, o parâmetro é aplicado a todos os locais ao longo da polilinha.

O modificador side_of_road: só pode ser usado com as seguintes restrições:

  • O parâmetro mode de viagem é driving ou não está especificado (driving é o modo de viagem padrão).

Especificar que as rotas devem ter uma direção específica

Ao especificar um waypoint, você pode solicitar que o trajeto passe por ele em uma direção específica. Essa direção é especificada com o prefixo heading=X:, em que X é um valor inteiro em graus entre 0 (inclusive) e 360 (exclusive). Uma direção de 0 indica o norte, 90 indica o leste, continuando no sentido horário. Por exemplo, nesta solicitação de rotas, o trajeto vai para o leste a partir da origem e, em seguida, faz um retorno:

URL

https://maps.googleapis.com/maps/api/directions/json
  ?destination=37.773245%2C-122.469502
  &origin=heading%3D90%3A37.773279%2C-122.468780
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/directions/json?origin=heading%3D90%3A37.773279%2C-122.468780&destination=37.773245%2C-122.469502&key=YOUR_API_KEY'

O modificador heading=X: só pode ser usado com as seguintes restrições:

  • O parâmetro mode de viagem é driving, bicycling ou não está especificado (driving é o modo de viagem padrão).
  • O modificador side_of_road não é especificado para o mesmo local.
  • O local é especificado com um valor de latitude/longitude. Não é possível usar heading com endereços, IDs de lugar ou polilinhas codificadas.