Sugerencias para crear la mejor experiencia del usuario cuando navegas a ubicaciones con un automóvil

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-2024 y la API de Routes lanzada en 2023.

Por lo general, cuando el usuario conduce hacia un punto de interés (POI), en realidad necesita navegación hacia una ubicación cercana, como un estacionamiento o un punto de acceso. Imagina a un conductor que necesita ir a un aeropuerto o a un centro comercial. Cuando se dirige a un aeropuerto, el conductor intenta llegar a una terminal o a un punto de descenso en lugar de al centro del complejo aeroportuario. 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 busca 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 proporcionados por Google Maps Platform.

Diagrama del sistema

Te mostraremos cómo puedes usar la nueva API de Places y la API de Routes de forma secuencial o combinada para identificar la ubicación adecuada para estacionar cerca de tu destino. El objetivo de esta solución es eliminar la incertidumbre y las múltiples interacciones para encontrar un lugar donde estacionar mientras conduces una vez que te acercas al destino final. Veamos 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é conectada directamente a la ruta, de modo 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 trenes Gare de l'Est (48.87697775149635, 2.3592247806755564).

Gare l'Est

El conductor sale de la estación 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 ningún estacionamiento grande disponible cerca, por lo que debería ser un desafío interesante.

1. 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 detalles. La variable "$APIKEY" en estos ejemplos 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 un campo fieldmask 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 contenido de "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 efectivamente señalan Notre Dame.

Foto de la entrada de Notre Dame Mapa del área de Notre Dame

Como desarrollador o proveedor de servicios, es una buena idea preguntar automáticamente al conductor: "¿Buscas estacionamiento cerca de Notre Dame?" o, si el conductor tiene un vehículo eléctrico, tal vez quieras buscar una estación de carga. La experiencia del usuario será diferente según el dispositivo y la pantalla, pero podría valer la pena considerar un texto de diálogo sutil que desaparezca después de un breve período en este caso. Para encontrar estacionamiento cerca de Notre Dame, haz una búsqueda cercana con 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 hacia las áreas de estacionamiento que se encuentren a 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, tus resultados pueden variar. Usa esta ubicación en la siguiente parte, en la que realizaremos una solicitud a la API de Routes.

2. Solicitud a la API de Routes

Para encontrar la ruta desde la estación hasta una estación de carga cercana a 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'

Por lo general, la respuesta de la API de Routes contiene varias sugerencias de rutas. Para incluir los datos de la ruta en la respuesta, define "routes.legs" en el campo mask. Cada ruta consta de varios "tramos", y estos contienen varios "pasos" que muestran la distancia de viaje y las coordenadas. Para encontrar las coordenadas finales a las que se puede llegar en automóvil, usa el campo "endLocation" del último paso del último tramo de una ruta que seleccionaste. "latitude": 48.854937299999996, "longitude": 2.3505841999999997

Esta ubicación puede no parecer 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.

Cómo llegar a 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 solo requiere algunas llamadas a la API y mostrar la sugerencia al conductor. Esto les ahorra tiempo a los usuarios, ya que no tienen que conducir por calles de un solo sentido ni intentar 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 cercana de la API de Places para encontrar un área de estacionamiento con una estación de carga de automóviles eléctricos a menos de 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 un usuario a una terminal en un aeropuerto grande

Mapa del aeropuerto de Heathrow

Considera otro ejemplo en el que el conductor intenta llegar a un área grande que tiene varias ubicaciones, PDI 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 tipos principales como criterios de búsqueda en combinación con la API que predice sububicaciones como posibles resultados de la búsqueda. En este caso, significa que, si buscas un aeropuerto y un estacionamiento, también se mostrarán terminales o estacionamientos. Puedes encontrar una lista completa de los tipos que se pueden incluir o excluir en la documentación.

curl -X POST -d '{
  "input": "Heathrow",
  "includedPrimaryTypes": ["airport", "parking"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete

La búsqueda anterior nos proporciona una lista de las terminales y los puntos de entrega individuales en esas terminales. En la lista de resultados, podemos encontrar "London Heathrow Airport Terminal 5" y su ID de lugar:

"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",

Con el parámetro "placeId", podemos indicarle a la API de Routes que intentamos 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'

Nuevamente, como en el ejemplo anterior, si lees todos los pasos de la respuesta JSON, encontrarás la última parte del viaje y las coordenadas de latitud y longitud de las ubicaciones finales (51.4714348, "longitude": -0.48967890000000003).

Street View de la Terminal 5

Resumen del ejemplo 2

Al igual que en el ejemplo anterior, el esfuerzo de desarrollo para brindar una mejor orientación al conductor es muy pequeño y se pueden medir los beneficios en el tiempo ahorrado para el conductor. Realizamos las siguientes solicitudes:

  • Una solicitud de autocompletado (nuevo) 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 desde Wembley hasta la terminal 5

Este ejemplo solo muestra una pequeña parte de las nuevas funciones de la API de Places. Echa un vistazo a algunos de los nuevos tipos de lugares, como pista de aterrizaje y aeropuerto internacional.

Conclusión

Como puedes ver, el esfuerzo de desarrollo necesario para brindar 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 disponible públicamente para Google Maps Platform.

Próximas acciones

Cómo comenzar a utilizar GMP : https://developers.google.com/maps/get-started

Lecturas adicionales sugeridas

Documentación de Place Autocomplete de la API de Places (nuevo): 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