Calcula el resumen de la ruta
Para usar Text Search (nuevo) o Nearby Search (nuevo) para calcular la duración y la distancia del viaje a cada lugar de la respuesta, haz lo siguiente:
-
Pasa el parámetro
routingParameters.origin
en la solicitud para especificar las coordenadas de latitud y longitud del origen del enrutamiento. 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 la 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:
Cómo usar Text Search (nueva)
En la siguiente solicitud, calcularás la duración y la distancia del viaje 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 coincidentes, 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 al lugar del 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 del array de places
. En el caso de que el routingSummary
de un lugar no esté disponible, la entrada del array estará vacía.
Dado que este ejemplo calcula la duración y la distancia desde el origen del enrutamiento hasta cada lugar, el campo routingSummaries.legs
de la respuesta contiene un solo objeto Leg
que incluye los objetos duration
y distanceMeters
desde el origen del 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 la ruta hasta el primer lugar en los resultados son de 597 segundos y 2,607 metros.
Cómo usar la Búsqueda cercana
En este ejemplo, calcularás la duración y la distancia del viaje a cada lugar en la respuesta de la Búsqueda cercana. En este ejemplo, se buscan restaurantes en Sídney, Australia, y se establecen la restricción de ubicación y el origen de la ruta en las mismas coordenadas 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 el locationRestriction
y el origen del enrutamiento. Por ejemplo, puedes establecer locationRestriction
en el punto central de Sídney para sesgar los resultados de la búsqueda hacia ese círculo. Sin embargo, luego estableces el origen de la 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 hacia el círculo y calcula los resúmenes de la ruta en función de 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
(predeterminada),TRAFFIC_AWARE
oTRAFFIC_AWARE_OPTIMAL
. Cada opción tiene diferentes niveles de calidad y latencia de los datos. Para obtener más información, consulta Cómo especificar si se deben incluir datos de tráfico y de qué manera.La propiedad
routingParameters.routingPreference
sí afecta las indicaciones que se incluyen en el campodirectionsUri
de la versión preliminar (pre-DG), ya que Google Maps muestra las opciones de tráfico cuando se abre el vínculo. -
Usa la propiedad
routingParameters.routeModifiers
para especificaravoidTolls
,avoidHighways
,avoidFerries
yavoidIndoor
. Para obtener más información sobre estas opciones, consulta Cómo especificar las características de la ruta que se deben evitar.
En el siguiente ejemplo, especificarás el modo de viaje como DRIVE
y evitarás 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'
Pruébalo
El Explorador de APIs te permite realizar solicitudes de ejemplo para que te familiarices con la API y sus opciones.
Selecciona el ícono de la API api en el lado derecho de la página.
De manera opcional, edita los parámetros de la solicitud.
Selecciona el botón Ejecutar. En el diálogo, elige la cuenta que deseas usar para hacer la solicitud.
En el panel del Explorador de APIs, selecciona el ícono de pantalla completa fullscreen para expandir la ventana del Explorador de APIs.