Calcula el resumen de enrutamiento
Para usar Text Search (nueva) o Nearby Search (nueva) para calcular la duración del viaje y la distancia a cada lugar en la respuesta, haz lo siguiente:
-
Pasa el parámetro
routingParameters.origin
en la solicitud para especificar las coordenadas de latitud y longitud del origen de planificación de ruta. Este parámetro es obligatorio para calcular la duración y la distancia a cada lugar en la respuesta. -
Incluye
routingSummaries
en 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 planificación de ruta hasta cada lugar de la respuesta.
El Explorador de APIs te permite realizar solicitudes en vivo para que puedas familiarizarte con la API y sus opciones:
PruébaloCómo usar Text Search (nueva)
En la siguiente solicitud, calculas la duración del viaje y la distancia a cada lugar en la respuesta de Text Search (nuevo):
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'
La respuesta contiene dos arrays JSON: el array places
contiene los lugares que coinciden y el array routingSummaries
contiene la duración y la distancia para viajar a cada lugar:
{ "places": [ { object (Place) } ] "routingSummaries": [ { object (RoutingSummary) } }
Cada elemento del array routingSummaries
se encuentra en la ubicación del array correspondiente como el lugar en el array places
. Es decir, el elemento en routingSummaries[0]
corresponde al lugar en places[0]
.
La longitud del array de routingSummaries
es la misma que la longitud del array de places
. En el caso de que el routingSummary
de un lugar no esté disponible, la entrada del array está vacía.
Como este ejemplo calcula la duración y la distancia desde el origen de enrutamiento hasta cada lugar, el campo routingSummaries.legs
en la respuesta contiene un solo objeto Leg
que contiene duration
y distanceMeters
desde el origen de enrutamiento hasta el 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 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0" }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0" }, … ] }
En este ejemplo, puedes ver que la duración y la distancia desde el origen de planificación de ruta hasta el primer lugar en los resultados son de 597 segundos y 2,607 metros.
Cómo usar Nearby Search
En este ejemplo, calculas la duración del viaje y la distancia a cada lugar en la respuesta de la Búsqueda cercana. En este ejemplo, se buscan restaurantes en Sídney, Australia, y se establece la restricción de ubicación y el origen de planificación de ruta en la misma coordenada de latitud y longitud:
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
No es necesario que uses las mismas coordenadas para locationRestriction
y para el origen de enrutamiento. Por ejemplo, configuras locationRestriction
en el punto central de Sídney para sesgar los resultados de la búsqueda en ese círculo. Sin embargo, luego estableces el origen de planificación de ruta en las coordenadas de tu casa, es decir, en una ubicación diferente dentro del círculo de búsqueda. Luego, la solicitud sesga los resultados de la búsqueda en el círculo y calcula los resúmenes de planificación de ruta según la ubicación de tu casa.
Especifica las opciones de viaje
De forma predeterminada, los cálculos de duración y distancia son para un automóvil. Sin embargo, puedes controlar el tipo de vehículo, así como otras opciones, en la búsqueda.
-
Usa el parámetro
routingParameters.travelMode
para establecer el modo de transporte enDRIVE
,BICYCLE
,WALK
oTWO_WHEELER
. Para obtener más información sobre estas opciones, consulta Tipos de vehículos disponibles para las rutas. -
Usa la propiedad
routingParameters.routingPreference
para establecer la opción de preferencia de enrutamiento enTRAFFIC_UNAWARE
(predeterminado),TRAFFIC_AWARE
oTRAFFIC_AWARE_OPTIMAL
. Cada opción tiene diferentes niveles de calidad de los datos y latencia. Para obtener más información, consulta Especifica cómo incluir datos de tráfico y si debes hacerlo.La propiedad
routingParameters.routingPreference
sí afecta las instrucciones contenidas en el campodirectionsUri
de la versión preliminar (fase previa a la DG) porque Google Maps muestra opciones de tráfico cuando abre el vínculo. -
Usa la propiedad
routingParameters.routeModifiers
para especificaravoidTolls
,avoidHighways
,avoidFerries
yavoidIndoor
. Para obtener más información sobre estas opciones, consulta Especifica las características de la ruta que se deben evitar.
En el siguiente ejemplo, especificas el modo de viaje como DRIVE
y evitar las autopistas:
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'