El SDK de Navigation para Android ofrece formas mejoradas de especificar puntos de referencia, lo que proporciona un enrutamiento más preciso y una mejor experiencia de llegada, especialmente para destinos con varias entradas o puntos de acceso específicos. Puedes generar rutas a ubicaciones precisas con un objeto navigationPointToken o combinando coordenadas de latitud y longitud con un ID de lugar para agregar contexto. La función de resaltado de destino seguirá funcionando si corresponde.
Fondo
Antes de la versión 7.4, podías definir un Waypoint con coordenadas de latitud y longitud o un ID de lugar. Si bien es eficaz para la mayoría de los casos de uso, en ocasiones, enrutar solo a una latitud y longitud puede generar puntos de partida o destino no óptimos, en especial para lugares grandes, parques o edificios con varias entradas. El resultado podría ajustarse al tramo de ruta más cercano, que tal vez no sea el punto de acceso más conveniente o correcto.
Las opciones de paradas mejoradas abordan este problema, ya que permiten proporcionar más contexto.
Combina el ID de lugar con la latitud y la longitud
A partir de la versión 7.4, puedes proporcionar tanto un ID de lugar como coordenadas de latitud y longitud cuando creas un Waypoint. Este método es útil cuando deseas especificar un punto preciso (la latitud y longitud) y, al mismo tiempo, proporcionar el contexto del lugar general (el ID de lugar). Esto permite que el SDK de Navigation proporcione una experiencia de llegada más enriquecida, ya que destaca el edificio de destino o muestra puntos de interés cercanos relacionados con el ID de lugar.
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
Consideraciones:
Cuando proporcionas placeId y latlng, ocurre lo siguiente:
- La ruta se segmenta principalmente para el
latlngespecificado. - El
placeIdse usa como contexto para mejorar la experiencia de llegada. - Respaldo: Si el SDK determina que el objeto
placeIdproporcionado corresponde a una función que está demasiado lejos del objetolatlngproporcionado, se ignorará el objetoplaceId. En este caso, el enrutamiento solo se realizará hacia ellatlng, y no estarán disponibles las mejoras en la experiencia de llegada específicas para el lugar.
Usa un token de Navigation Point
Para obtener la ruta más precisa a puntos de acceso específicos, como entradas, muelles de carga o áreas de retiro designadas, puedes usar un navigationPointToken. Este token se obtiene llamando al método destinations de la API de Geocoding.
Representa un punto de navegación específico y con ruta asociado a un lugar.
Para especificar un token de Navigation Point, haz lo siguiente:
- Obtén un
navigationPointTokende la respuesta del método Destinations de la API de Geocoding. - Crea un
Waypointcon el métodosetNavigationPointToken()en el compilador.
Nota: Cuando uses setNavigationPointToken(), no podrás usar setLatLng() ni setPlaceIdString() de forma simultánea. Estos métodos son mutuamente excluyentes con setNavigationPointToken().
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
Resumen de las configuraciones de puntos de referencia válidas
| Método | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Comportamiento de enrutamiento | Destacado de destino |
|---|---|---|---|---|---|
| Solo LatLng | set | ausente | ausente | Dirige al segmento de ruta más cercano a las coordenadas definidas | No se muestra. |
| Solo ID de lugar | ausente | set | ausente | Rutas al punto de acceso predeterminado del ID de lugar | From PlaceID |
| Solo token de punto de navegación | ausente | ausente | set | Rutas al punto de acceso preciso representado por el token | Desde el destino definido en la solicitud original del método destinations de la API de Geocoding |
| LatLng y ID de lugar combinados | set | set | ausente | Dirige al segmento de ruta más cercano a las coordenadas definidas | Desde PlaceID, aunque no se muestra si el PlaceID está demasiado lejos de LatLng |