Method: computeCustomRoutes

Com um conjunto de waypoints terminais e intermediários e um objetivo de trajeto, calcula a melhor rota para o objetivo dela. Também retorna o trajeto mais rápido e o mais curto como trajetos de referência.

OBSERVAÇÃO: esse método exige que você especifique uma máscara de campo de resposta na entrada. É possível fornecer a máscara de campo de resposta usando o parâmetro de URL $fields ou fields ou o cabeçalho HTTP/gRPC X-Goog-FieldMask. Consulte cabeçalhos e parâmetros de URL disponíveis. O valor é uma lista separada por vírgulas de caminhos de campo. Consulte esta documentação detalhada sobre como construir caminhos de campo.

Por exemplo, neste método:

  • Máscara de campo de todos os campos disponíveis (para inspeção manual): X-Goog-FieldMask: *
  • Máscara de campo das distâncias, durações, tokens e informações de pedágio do trajeto: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

O Google não recomenda o uso da máscara de campo de resposta de caractere curinga (*) nem a especificação da máscara de campo no nível superior (routes), porque:

  • Selecionar apenas os campos necessários ajuda nosso servidor a economizar ciclos de computação, permitindo retornar o resultado com uma latência menor.
  • Selecionar apenas os campos necessários no job de produção garante um desempenho de latência estável. Podemos adicionar mais campos de resposta no futuro, e esses novos campos podem exigir mais tempo de computação. Se você selecionar todos os campos ou todos no nível superior, talvez a performance piore, porque todos os novos campos adicionados vão ser incluídos automaticamente na resposta.
  • A seleção apenas dos campos necessários resulta em um tamanho de resposta menor e, portanto, maior capacidade de rede.

Solicitação HTTP

POST https://routespreferred.googleapis.com/v1:computeCustomRoutes

O URL usa a sintaxe de transcodificação gRPC.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "routeObjective": {
    object (RouteObjective)
  },
  "languageCode": string,
  "units": enum (Units)
}
Campos
origin

object (Waypoint)

Obrigatório. Ponto de referência de origem.

destination

object (Waypoint)

Obrigatório. Ponto de referência de destino.

intermediates[]

object (Waypoint)

Opcional. Um conjunto de waypoints ao longo do trajeto (excluindo pontos terminais), para passar ou parar. São aceitos até 25 waypoints intermediários.

travelMode

enum (RouteTravelMode)

Opcional. Especifica o meio de transporte. No momento, só há suporte para DRIVE.

routingPreference

enum (RoutingPreference)

Opcional. Especifica como calcular a rota. O servidor tenta usar a preferência de roteamento selecionada para calcular a rota. Se a preferência de trajeto resultar em um erro ou em uma latência muito longa, um erro será retornado. No futuro, poderemos implementar um mecanismo substituto para usar uma opção diferente quando a opção preferida não fornecer um resultado válido. Só é possível especificar essa opção quando travelMode é DRIVE ou TWO_WHEELER. Caso contrário, a solicitação falha.

polylineQuality

enum (PolylineQuality)

Opcional. Especifica sua preferência de qualidade da polilinha.

polylineEncoding

enum (PolylineEncoding)

Opcional. Especifica a codificação preferencial para a polilinha.

departureTime

string (Timestamp format)

Opcional. O horário de partida. Se você não definir esse valor, o padrão será a hora em que você fez a solicitação. Se você definir esse valor como uma hora que já ocorreu, a solicitação falhará.

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

routeModifiers

object (RouteModifiers)

Opcional. Um conjunto de condições a serem atendidas que afetam a forma como os trajetos são calculados.

routeObjective

object (RouteObjective)

Obrigatório. Um objetivo de rota para a otimização.

languageCode

string

Opcional. O código de idioma BCP-47, como "en-US" ou "sr-Latn". Para mais informações, consulte http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Para ver a lista de idiomas compatíveis, consulte Suporte a idiomas. Quando você não fornece esse valor, o idioma de exibição é inferido com base no local da solicitação de trajeto.

units

enum (Units)

Opcional. Especifica as unidades de medida dos campos de exibição. Isso inclui o campo instruction em NavigationInstruction. As unidades de medida usadas para o trajeto, trecho, distância em passos e duração não são afetadas por este valor. Se você não fornecer esse valor, as unidades de exibição serão inferidas a partir do local da solicitação.

Corpo da resposta

Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de ComputeCustomRoutesResponse.

Escopos de autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

Para mais informações, consulte a Visão geral do OAuth 2.0.