Combinar resumos de roteamento com pesquisa ao longo do trajeto
É possível combinar cálculos de resumo de roteamento com pesquisa ao longo de um trajeto. Nesse caso, a Text Search (New) retorna a duração e a distância da viagem até cada lugar na resposta e, em seguida, de cada lugar até o destino final do trajeto.
Para usar a Text Search (New) para calcular o resumo de roteamento com a pesquisa ao longo de um trajeto:
-
Use a API Routes para calcular uma rota que retorne uma polilinha na resposta.
-
Use o parâmetro
searchAlongRouteParameters.polyline.encodedPolylinepara transmitir a polilinha do trajeto à Text Search (New) para influenciar os resultados da pesquisa no trajeto. A resposta contém lugares que correspondem aos critérios de pesquisa e também estão localizados perto do trajeto especificado. -
Inclua
routingSummariesna 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 até cada lugar na resposta.
O APIs Explorer permite fazer solicitações em tempo real para que você possa se familiarizar com a API e as opções dela:
Por padrão, a Text Search (New) realiza a pesquisa ao longo de todo o trajeto:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
}
}' \
-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: a matriz places, que contém os lugares correspondentes, e a matriz routingSummaries, que contém a duração e a distância da viagem até cada lugar:
{ "places": [ { "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA", "priceLevel": "PRICE_LEVEL_INEXPENSIVE", "displayName": { "text": "Vegan Mob - Vegan BBQ and Soul Food", "languageCode": "en" } }, { "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Enjoy Vegetarian", "languageCode": "en" } }, … ], "routingSummaries": [ { "legs": [ { "duration": "285s", "distanceMeters": 1616 }, { "duration": "2466s", "distanceMeters": 58147 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0" }, { "legs": [ { "duration": "696s", "distanceMeters": 4704 }, { "duration": "2787s", "distanceMeters": 58901 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0" }, … ] }
Para cada entrada na matriz legs, a Text Search (New) retorna um tempo de viagem de dois trechos:
-
O primeiro trecho contém a duração e a distância da viagem da origem até o lugar. Neste exemplo, a duração e a distância da origem até o primeiro lugar nos resultados são de 285 segundos e 1.616 metros.
-
O segundo trecho contém a duração e a distância da viagem do lugar até o destino do trajeto. Neste exemplo, a duração e a distância são de 2.466 segundos e 58.147 metros.
Especificar a origem do roteamento, o modo de viagem e os modificadores de trajeto
É possível modificar o cálculo do resumo de pesquisa e roteamento especificando a origem do roteamento, o modo de viagem, os modificadores de trajeto e as preferências de roteamento. O modo de viagem e os modificadores de trajeto funcionam da mesma forma que para calcular resumos de roteamento sem especificar um trajeto, conforme mostrado no tópico Especificar opções de viagem.
Por padrão, o primeiro trecho de cada resultado contém a distância da origem definida pela polilinha até cada lugar. No entanto, é possível substituir esse padrão especificando explicitamente uma origem de roteamento na solicitação. Se especificado, o primeiro trecho de todas as respostas especifica as distâncias e a duração da origem de roteamento especificada, substituindo a origem da polilinha.
No exemplo a seguir, você especifica uma origem de roteamento como as coordenadas de San Mateo, na Califórnia, especifica para evitar pedágios e define o número de resultados como 5:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"maxResultCount": 5,
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
},
"routingParameters": {
"origin": {
"latitude": 37.56617,
"longitude": -122.30870
},
"travelMode":"DRIVE",
"routeModifiers": {
"avoidTolls": 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'A imagem a seguir mostra um mapa que contém a polilinha do trajeto, a nova origem (pino azul claro) e os lugares nos resultados da pesquisa (pinos verdes). Observe como todos os resultados estão ao longo do trajeto, mas depois de San Mateo:
Faça um teste
O APIs Explorer permite fazer solicitações de amostra para que você possa se familiarizar com a API e as opções dela.
Selecione o ícone da API api no lado direito da página.
Opcionalmente, edite os parâmetros da solicitação.
Selecione o botão Executar. Na caixa de diálogo, escolha a conta que você quer usar para fazer a solicitação.
No painel do APIs Explorer, selecione o ícone de tela cheia fullscreen para expandir a janela do APIs Explorer.