Combina resúmenes de rutas con búsquedas en la ruta
Puedes combinar los cálculos de resumen de rutas con la búsqueda en una ruta. En este caso, Text Search (New) muestra la duración y la distancia del viaje a cada lugar en la respuesta y, luego, desde cada lugar hasta el destino final de la ruta.
Para usar Text Search (New) para calcular el resumen de rutas junto con la búsqueda en una ruta, haz lo siguiente:
-
Usa la API de Routes para calcular una ruta que muestre una polilínea de ruta en la respuesta.
-
Usa el parámetro
searchAlongRouteParameters.polyline.encodedPolylinepara pasar la polilínea de ruta a Text Search (New) y sesgar los resultados de la búsqueda hacia la ruta. Luego, la respuesta contiene lugares que coinciden con los criterios de búsqueda y que también se encuentran cerca de la ruta especificada. -
Incluye
routingSummariesen la máscara de campo para que la respuesta incluya el arrayroutingSummaries. Este array contiene la duración y la distancia desde el origen de la ruta hasta cada lugar en la respuesta.
El Explorador de APIs te permite realizar solicitudes en vivo para que puedas familiarizarte con la API y sus opciones:
De forma predeterminada, Text Search (New) realiza la búsqueda en toda la ruta:
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'La respuesta contiene dos arrays: el array places que contiene los lugares coincidentes y el array routingSummaries que contiene la duración y la distancia para viajar a 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 en el array legs, Text Search (New) muestra un tiempo de viaje de dos tramos:
-
El primer tramo contiene la duración y la distancia del viaje desde el origen hasta el lugar. En este ejemplo, la duración y la distancia desde el origen hasta el primer lugar en los resultados son de 285 segundos y 1,616 metros.
-
El segundo tramo contiene la duración y la distancia del viaje desde el lugar hasta el destino de la ruta. En este ejemplo, la duración y la distancia son de 2,466 segundos y 58,147 metros.
Especifica el origen de la ruta, el modo de viaje y los modificadores de ruta
Puedes modificar el cálculo de la búsqueda y el resumen de rutas si especificas el origen de la ruta, el modo de viaje, los modificadores de ruta y las preferencias de ruta. El modo de viaje y los modificadores de ruta funcionan de la misma manera que para calcular resúmenes de rutas sin especificar una ruta, como se muestra en el tema Especifica las opciones de viaje.
De forma predeterminada, el primer tramo de cada resultado contiene la distancia desde el origen definido por la polilínea hasta cada lugar. Sin embargo, puedes anular ese valor predeterminado si especificas de forma explícita un origen de ruta en la solicitud. Si se especifica, el primer tramo de todas las respuestas especifica las distancias y la duración desde el origen de la ruta especificado, lo que anula el origen de la polilínea.
En el siguiente ejemplo, se especifica un origen de ruta como las coordenadas de San Mateo, CA, se especifica que se eviten los peajes y se establece la cantidad de resultados en 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'En la siguiente imagen, se muestra un mapa que contiene la polilínea de ruta, el nuevo origen (marcador azul claro) y los lugares en los resultados de la búsqueda (marcadores verdes). Observa cómo todos los resultados están a lo largo de la ruta, pero después de San Mateo:
Pruébalo
El Explorador de APIs te permite realizar solicitudes de muestra para que puedas familiarizarte con la API y sus opciones.
Selecciona el ícono de API api en el lado derecho de la página.
De forma opcional, edita los parámetros de la solicitud.
Selecciona el botón Ejecutar. En el cuadro de diálogo, elige la cuenta que deseas usar para realizar la solicitud.
En el panel Explorador de APIs, selecciona el ícono de pantalla completa fullscreen para expandir la ventana del Explorador de APIs.