Especificar locais para um trajeto

Para calcular um trajeto, você precisa especificar pelo menos os locais dele origem e destino da rota. Você define esses locais como waypoints na trajeto.

Além da origem e do destino, você pode especificar diferentes tipos de waypoints e como manipulá-los de um trajeto. Para mais informações e exemplos, consulte estes tópicos:

Especificar locais para um trajeto

Você representa um local criando um waypoint (REST) ou Waypoint (gRPC). Na definição de ponto de referência, você pode especificar um local de uma das seguintes maneiras:

Você pode especificar locais para todos os waypoints em uma solicitação da mesma maneira, ou misturá-los. Por exemplo, você pode usar coordenadas de latitude/longitude para o waypoint de origem e usar um ID de local para o waypoint de destino.

Para aumentar a eficiência e a precisão, use IDs de lugar em vez de latitude/longitude. coordenadas ou strings de endereço. IDs de lugares são exclusivamente explícitos e fornecem benefícios de geocodificação para roteamento como pontos de acesso e variáveis de tráfego. Eles ajude a evitar as seguintes situações que podem resultar de outras formas de especificar um local:

  • O uso de coordenadas de latitude/longitude pode fazer com que o local seja direcionados para a estrada mais próxima dessas coordenadas, o que pode não ser um à propriedade ou até mesmo uma estrada que, de forma rápida ou segura, leva ao destino.
  • As strings de endereço precisam ser geocodificadas pela API Routes primeiro para converter a coordenadas de latitude/longitude antes de calcular uma rota. Essa conversão pode afetar o desempenho.

Especificar um local como um ID de lugar

É possível usar um ID de lugar para especificar o local de um ponto de passagem. Devido ao coordenadas de latitude e longitude são ajustadas em estradas, você pode encontrar uma ID de lugar oferece melhores resultados em algumas circunstâncias.

Recupere IDs de lugares usando a API Geocoding e pela API Places (incluindo a API Place preenchimento automático). Para saber mais sobre IDs de lugar, consulte a Visão geral do ID de lugar.

O exemplo a seguir usa a propriedade placeId para transmitir um ID de lugar para origin e destination:

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

Especificar um local como coordenadas de latitude e longitude

Para definir a localização em um waypoint, especifique o Location (REST) ou Local(gRPC) usando coordenadas de latitude/longitude.

Por exemplo, especifique um waypoint para os trajetos origin e destination. usando as coordenadas latitude e longitude:

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

Especificar um local como uma string de endereço

Strings de endereço são endereços literais representados por uma string (como "1600 Amphitheatre Parkway, Mountain View, CA"). Geocodificação é o processo de converter uma string de endereço em coordenadas de latitude e longitude (como latitude 37.423021 e longitude -122.083739).

Quando você transmite uma string de endereço como o local de um waypoint, a API Routes geocodifica internamente a string para convertê-la em latitude e longitude coordenadas.

Por exemplo, para calcular um trajeto, especifique um waypoint para o trajeto origin e destination usando strings de endereço:

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

Neste exemplo, a API Routes geocodifica os dois endereços para que sejam convertidos em coordenadas de latitude e longitude.

Se o valor do endereço for ambíguo, a API Routes poderá invocar uma pesquisa para sem ambiguidade de endereços semelhantes. Por exemplo, "Rua 1" poderia ser um valor completo ou parcial para "1st Street NE" ou "1st St SE". Isso resultado pode ser diferente do retornado pela API Geocoding. Você pode evitar possíveis erros de interpretação usando IDs de lugar.

Defina a região do endereço

Se você passar uma string de endereço incompleta como a localização de um waypoint, a API pode usar as coordenadas de latitude/longitude geocodificadas erradas. Por exemplo: você faz uma solicitação especificando "Toledo" como origem e "Madri" como destino de um trajeto de carro:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

Neste exemplo, "Toledo" é interpretada como uma cidade do estado em Ohio, nos Estados Unidos, e não na Espanha. Portanto, a solicitação retorna Uma matriz vazia, o que significa que não existem rotas:

{
  []
}

Você pode configurar a API para retornar resultados direcionados a uma região específica incluindo o parâmetro regionCode. Este parâmetro especifica o código de região como um ccTLD ("domínio de nível superior") um valor de dois caracteres. A maioria dos códigos ccTLD é idêntica aos códigos ISO 3166-1, com 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 "The Reino Unido da Grã-Bretanha e Irlanda do Norte").

Uma solicitação de rota para "Toledo" para "Madri" que inclua regionCode retorna resultados apropriados porque "Toledo" é interpretada como um cidade na Espanha:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

A resposta agora contém o trajeto calculado de Toledo, na Espanha, até Madri, Espanha:

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

Especificar um local como um Plus Code

Muitas pessoas não têm um endereço exato, o que pode dificultar o acesso para receber entregas. Ou, quem tem um endereço pode preferir aceitar entregas em locais mais específicos, como na entrada dos fundos ou em um base.

Plus Codes são como endereços para pessoas ou lugares que não têm o endereço real. Em vez de endereços com nomes e números, os Plus Codes são baseados em coordenadas de latitude/longitude e exibidos como números e letras

O Google desenvolveu os Plus Codes para dar o benefício dos endereços a tudo e a todos. Um Plus Code é um código referência de local, derivada de coordenadas de latitude/longitude, representa uma área: 1/8.000 de grau por 1/8.000 de grau (cerca de 14 m x 14 m no equador) ou menos. Você pode usar Plus Codes para substituir endereços em lugares onde não existem ou onde não há edifícios numeradas ou as ruas não têm nome.

Os Plus Codes precisam ser formatados como um código global ou composto:

  • Um código global é composto por um código de área de quatro caracteres e seis caractere ou um código local mais longo.

    Por exemplo, para o endereço "1600 Amphitheatre Parkway, Mountain View, CA", o código global é "849V" e o código local é "CWC8+R9". Depois, use o Plus Code de 10 caracteres para especificar o valor da localização como "849VCWC8+R9".

  • Um código composto é composto por seis caracteres ou mais. código local combinado com um local explícito.

    Por exemplo, o endereço "450 Serra Mall, Stanford, CA 94305, EUA" tem o código local "CRHJ+C3". Para um composto , combine o código local com a cidade, estado, CEP e país do endereço no formato "CRHJ+C3 Stanford, CA 94305, USA".

    Por exemplo, calcular uma rota especificando um waypoint para a rota origin e destination usando Plus Codes:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

Os Plus Codes são compatíveis com as APIs da Plataforma Google Maps, incluindo Place Autocomplete, Place Details, API Directions e API Geocoding. Por exemplo, você pode usar a Geocoding API para fazer a geocodificação inversa de uma local especificado por coordenadas de latitude/longitude para determinar Plus Code do seu local.