Este documento es una actualización de un artículo anterior que usaba versiones anteriores de las APIs de GMP. Este contenido se actualizó a la nueva versión de la API de Places lanzada en 2023-24 y a la API de Routes lanzada en 2023.
Por lo general, cuando el usuario conduce a un lugar de interés (POI), en realidad necesita navegar a una ubicación cercana, como un estacionamiento o un punto de acceso. Imagina un conductor que necesita ir a un aeropuerto o a un centro comercial. Cuando se va a un aeropuerto, el conductor intenta llegar a una terminal o a un punto de bajada en lugar de al centro del complejo del aeropuerto. Del mismo modo, un estacionamiento junto al centro comercial podría ser una opción mucho mejor para un usuario con automóvil. En este caso, cuando desarrolles una app o un servicio para guiar al conductor, primero encuentra la ubicación a la que se dirige y, luego, ofrécele destinos opcionales cerca de esa ubicación. Este enfoque te permite brindar un mejor servicio a tus clientes y demostrar que valoras su tiempo, con un esfuerzo de desarrollo pequeño pero inteligente que aprovecha los datos de ubicación que proporciona Google Maps Platform.
Te mostraremos cómo puedes usar la nueva API de Places y la API de Routes en secuencia o combinación para identificar la ubicación correcta para estacionar junto a tu destino. El objetivo de esta solución es eliminar la incertidumbre y las múltiples interacciones para encontrar un lugar para estacionar mientras se conduce una vez que se está más cerca del destino final. Observa estos dos ejemplos de cómo se podrían implementar estos casos en detalle.
Ejemplo 1: Una atracción turística sin estacionamiento
Elige una ubicación que no esté directamente conectada a la ruta para que se deba recuperar una ruta por separado. El destino es Notre Dame en París y, como punto de partida, usaremos la estación de tren Gare de l'Est (48.87697775149635, 2.3592247806755564).
El conductor sale de la estación a unos 16 minutos al norte de Notre Dame. Notre Dame es una famosa atracción turística en una isla con acceso por puente, algunas calles de un solo sentido y sin un estacionamiento grande disponible cerca, por lo que este debería ser un desafío interesante.
- Solicitud a la API de Places
En este ejemplo de solicitud a la API de Places, se usa la búsqueda de texto para encontrar Notre Dame. Consulta la documentación para desarrolladores para obtener más información. En estos ejemplos, "$APIKEY" es la clave de API que tienes para las APIs de Places y Routes de Google Maps Platform habilitadas en la consola de Google Cloud. Para obtener una explicación más detallada, consulta la documentación sobre cómo comenzar a utilizar Google Maps Platform.
Las nuevas solicitudes a la API de Places tienen un formato nuevo. Los campos de respuesta ya no son fijos y, como desarrollador, debes definir una máscara de campo en el encabezado. El uso de la máscara de campo se define en la documentación.
curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'
Con el contenido "notre_date.json" para los parámetros de búsqueda:
{
"textQuery": "Notre Dame, Paris",
"languageCode": "en"
}
La respuesta a la solicitud anterior proporciona las siguientes coordenadas de latitud y longitud:
{
"places": [
{
"id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
"formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
"location": {
"latitude": 48.852968200000007,
"longitude": 2.3499021
},
"displayName": {
"text": "Cathédrale Notre-Dame de Paris",
"languageCode": "en"
}
}
]
}
Como puedes ver, las coordenadas señalan con precisión Notre Dame.
Como desarrollador o proveedor de servicios, es una buena idea preguntarle automáticamente al conductor si busca un estacionamiento cerca de Notre Dame o, si tiene un vehículo eléctrico, si quiere buscar una estación de carga. La experiencia del usuario será diferente según el dispositivo y la pantalla, pero en este caso, podría ser conveniente considerar un texto de diálogo sutil que desaparezca después de un período breve. Para encontrar estacionamiento cerca de Notre Dame, realiza una búsqueda cercana de la API de Places con los tipos "parking" y "electric_vehicle_charging_station" con un radio de 500 metros. En el siguiente ejemplo, se sesgarán los resultados en áreas de estacionamiento dentro de un radio de 500 metros de Notre Dame.
curl -X POST -d '{
"includedTypes": ["parking", "electric_vehicle_charging_station"],
"maxResultCount": 10,
"rankPreference": "DISTANCE",
"locationRestriction": {
"circle": {
"center": {
"latitude": 48.852968200000007,
"longitude": 2.3499021},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby
El primer resultado es una estación de carga en 48.854981, 2.350629, aunque cuando ejecutes este ejemplo, los resultados pueden variar. Usa esta ubicación en la siguiente parte, en la que realizaremos una solicitud a la API de Routes.
- **Solicitud a la API de Routes **
Para encontrar la ruta de la estación a una estación de carga cerca de Notre Dame, debes realizar una solicitud a la API de Routes. Solo debes establecer los parámetros de origen y destino. Consulta la documentación para desarrolladores para obtener más opciones.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 48.87697775149635,
"longitude": 2.3592247806755564
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 48.854981,
"longitude": 2.350629
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
La respuesta de la API de Routes suele contener varias sugerencias de rutas. Para incluir los datos de la ruta en la respuesta, define "routes.legs" en la máscara de campos. Cada ruta consta de varias "etapas", que contienen varios "pasos" que muestran la distancia y las coordenadas de viaje. Para encontrar las coordenadas finales a las que se puede llegar en un automóvil, usa el campo "endLocation" del último paso de un último tramo en una ruta que seleccionaste. "latitude": 48.854937299999996, "longitude": 2.3505841999999997
Puede que esta ubicación no parezca la primera opción, pero cuando mires el mapa o Google Street View, verás que está a una distancia muy corta a pie, de unos 6 o 7 minutos, de Notre Dame.
Ruta a pie desde el estacionamiento de la estación de carga hasta Notre Dame
Resumen del ejemplo 1
Como puedes ver, encontrar un área de estacionamiento para un automóvil requiere solo unas pocas llamadas a la API y mostrar la sugerencia al conductor. Esto ahorra tiempo a los usuarios, ya que no conducen por calles de un solo sentido ni intentan encontrar un lugar para dejar el automóvil en una atracción turística concurrida. En resumen, realizamos las siguientes solicitudes a la API:
- Una solicitud de búsqueda de texto de la API de Places para encontrar las coordenadas de Notre Dame
- Una búsqueda de lugares cercanos de la API de Places para encontrar un área de estacionamiento con una estación de carga de automóviles eléctricos a 500 metros de esas coordenadas
- Una solicitud a la API de Routes para encontrar una ruta a la estación de carga
Ejemplo 2: Cómo guiar a una terminal en un aeropuerto grande
Consideremos otro ejemplo en el que el conductor intenta llegar a un área grande que tiene varias ubicaciones, lugares de interés o posibles puntos de entrega. El conductor sale del estadio de Wembley, Reino Unido (51.557263604707224, -0.2794575145680608) y quiere llegar a la terminal 5 del aeropuerto de Londres-Heathrow.
Lo mejor del nuevo autocompletado de la API de Places es la capacidad de definir un tipo principal como criterio de búsqueda en combinación con la API que predice subpremios como posibles resultados de la búsqueda. En este caso, significa que si buscas un aeropuerto, también se mostrarán las terminales. Puedes encontrar la lista completa de tipos para incluir o excluir en la documentación.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete
La consulta anterior nos proporciona una lista de las terminales y los puntos de entrega individuales en esas terminales. En la lista de resultados, podemos encontrar "Terminal 5 del aeropuerto de Londres Heathrow" y su ID de Place:
"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",
Con el parámetro "placeId", podemos indicarle a la API de Routes que estamos tratando de llegar a un lugar en lugar de a algunas coordenadas arbitrarias.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 51.557263604707224,
"longitude": -0.2794575145680608
}
}
},
"destination":{
"placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Una vez más, como en el ejemplo anterior, si lees todos los pasos de la respuesta JSON, encontrarás la última parte del recorrido y las coordenadas de latitud y longitud de las ubicaciones de destino (51.4714348, "longitude": -0.48967890000000003).
Resumen del ejemplo 2
Al igual que en el ejemplo anterior, el esfuerzo de desarrollo para proporcionar una guía mejorada al conductor es muy pequeño y se pueden medir los beneficios en el tiempo que se ahorra al conductor. Realizamos las siguientes solicitudes:
- Una solicitud de Autocomplete (nueva) de la API de Places para encontrar la terminal 5 del aeropuerto de Heathrow
- Una solicitud a la API de Routes para obtener una ruta de Wembley a la terminal 5
Este ejemplo solo muestra algunas de las nuevas funciones de la API de Places. Consulta algunos de los tipos de lugares nuevos, como la pista de aterrizaje y el aeropuerto internacional.
Conclusión
Como puedes ver, el esfuerzo de desarrollo necesario para proporcionar un servicio premium a tus clientes que viajan en automóvil es bastante pequeño y puedes demostrar cómo tienes en cuenta las necesidades de tus clientes.
Para fines de desarrollo, puedes usar muchas de las bibliotecas y herramientas disponibles para ayudarte a compilar los servicios para tus clientes. Consulta nuestro repositorio de GitHub para la plataforma de Google Maps, disponible de forma pública.
Acciones siguientes
Cómo comenzar a usar GMP : https://developers.google.com/maps/get-started
Lecturas adicionales sugeridas
Documentación de Place Autocomplete (nuevo) de la API de Places: https://developers.google.com/maps/documentation/places/web-service/place-autocomplete
Documentación de la API de Routes: https://developers.google.com/maps/documentation/routes
Colaboradores
Autor principal: Mikko Toivanen | Ingeniero de Soluciones de Google Maps Platform