Calcular o resumo do roteamento
Para usar o Text Search (novo) ou o Nearby Search (novo) para calcular a duração e a distância da viagem até cada lugar na resposta:
-
Transmita o parâmetro
routingParameters.origin
na solicitação para especificar as coordenadas de latitude e longitude da origem do roteamento. Esse parâmetro é necessárias para calcular a duração e a distância até cada local no resposta. -
Inclua
routingSummaries
na máscara de campo para que a resposta inclua a matrizroutingSummaries
. Essa matriz contém a duração e a distância da origem do roteamento para cada local na resposta.
Usar Text Search (novo)
Na solicitação a seguir, você calcula a duração do percurso e a distância para cada lugar na resposta do Text Search (novo):
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'
A resposta contém duas matrizes JSON: a matriz places
contém o
casas e a matriz routingSummaries
contendo a duração e a distância até
vão até cada lugar:
{ "places": [ { object (Place) } ] "routingSummaries": [ { "legs": [ object (Leg) ] } ] }
Cada elemento da matriz routingSummaries
está na matriz correspondente
local na matriz places
. Ou seja, o elemento em
routingSummaries[0]
corresponde ao lugar em places[0]
.
O comprimento da matriz de routingSummaries
é igual ao comprimento da matriz de
places
. Caso o routingSummary
de um lugar não esteja disponível,
a entrada da matriz está vazia.
Como este exemplo calcula a duração e a distância da origem do roteamento para cada lugar, o campo legs
na resposta contém um único objeto Leg
que contém o duration
e o distanceMeters
da origem do roteamento para o lugar:
{ "places": [ { "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia", "displayName": { "text": "Gözleme King Sydney", "languageCode": "en" } }, { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, … ] "routingSummaries": [ { "legs": [ { "duration": "597s", "distanceMeters": 2607 } ] }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ] }, … ] }
Neste exemplo, você pode conferir que a duração e a distância da origem do roteamento até o primeiro lugar nos resultados são 597 segundos e 2.607 metros.
Usar o Nearby Search
Neste exemplo, você calcula a duração da viagem e a distância até cada local em a resposta da Nearby Search. Este exemplo procura restaurantes em Sydney, Austrália e define a restrição de local e a origem do trajeto como os mesmos coordenadas de latitude e longitude:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": -33.8688, "longitude": 151.1957362}, "radius": 500.0 } }, "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \ -H "X-Goog-FieldMask: places.displayName,routingSummaries" \ https://places.googleapis.com/v1/places:searchNearby
Não é necessário usar as mesmas coordenadas para o locationRestriction
e o
para a origem do roteamento. Por exemplo, você define locationRestriction
como o centro
de Sydney para direcionar os resultados da pesquisa para esse círculo. Mas você define
origem de trajeto até as coordenadas da sua casa, ou seja, para um local diferente
dentro do círculo de pesquisa. A solicitação, então, direciona os resultados da pesquisa para o
círculo e calcula os resumos de roteamento com base na localização da sua
casa.
Especificar opções de viagem
Por padrão, os cálculos de duração e distância são referentes a um carro. No entanto, você pode controlar o tipo de veículo e outras opções na pesquisa.
-
Use o parâmetro
routingParameters.travelMode
para definir o modo transporte paraDRIVE
,BICYCLE
,WALK
ouTWO_WHEELER
. Para mais informações sobre essas opções, consulte Tipos de veículos disponíveis para trajetos. -
Use a propriedade
routingParameters.routingPreference
para definir a opção de preferência de roteamento comoTRAFFIC_UNAWARE
(padrão),TRAFFIC_AWARE
ouTRAFFIC_AWARE_OPTIMAL
. Cada opção tem níveis variáveis de qualidade e latência dos dados. Para mais informações, consulte Especificar como e se incluir dados de tráfego. -
Use a propriedade
routingParameters.routeModifiers
para especificaravoidTolls
,avoidHighways
,avoidFerries
eavoidIndoor
. Para mais informações sobre essas opções, consulte Especificar recursos de rota para evitar.
No próximo exemplo, você especifica o meio de transporte como DRIVE
e deve evitar
rodovias:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 }, "travelMode":"DRIVE", "routeModifiers": { "avoidHighways": true } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'