El SDK de Navigation para iOS 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 ubicación 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 10.10, podías definir un Waypoint con coordenadas de ubicación o un ID de lugar. Si bien a veces es eficaz, en ocasiones, establecer la ruta 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 puntos de referencia mejoradas abordan este problema, ya que te permiten proporcionar más contexto.
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.Especifica
navigationPointTokencuando crees unGMSNavigationWaypoint.
Nota: No puedes especificar simultáneamente un token de punto de navegación junto con una ubicación y un PlaceID.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"
Combina el ID de lugar y la ubicación
A partir de la versión 10.10, puedes proporcionar tanto un ID de lugar como coordenadas de ubicación cuando creas un punto de ruta. Este método es útil cuando deseas especificar un punto preciso (la ubicación) 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.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
Consideraciones:
Cuando proporcionas placeID y location, ocurre lo siguiente:
- La ruta segmenta principalmente el
locationespecificado. - El
placeIdse usa como contexto para mejorar la experiencia de llegada. - Respaldo: Si el SDK determina que el
placeIdproporcionado corresponde a una función que está demasiado lejos dellocationdeterminado, se ignorará elplaceId. En esta situación, el enrutamiento solo se realizará hacia ellocation, y no estarán disponibles las mejoras en la experiencia de llegada específicas para el lugar.
Resumen de las configuraciones de puntos de referencia válidas
| Especificación | location |
placeID |
navigationPointToken |
Comportamiento de enrutamiento | Destacado del destino |
|---|---|---|---|---|---|
| Solo coordenadas de ubicación | set | ausente | ausente | Dirige al segmento de ruta más cercano a las coordenadas definidas | Se muestra si se puede inferir el destino con un alto nivel de confianza. |
| Solo ID de lugar | ausente | set | ausente | Rutas al punto de navegación predeterminado para el ID de lugar | ID del lugar de origen |
| Solo token de punto de navegación | ausente | ausente | set | Rutas hacia el punto de navegación preciso representado por el token | Desde el destino definido en la solicitud original del método destinations de la API de Geocoding |
| Coordenadas de ubicación y el ID de lugar combinados | se | set | ausente | Dirige al segmento de ruta más cercano a las coordenadas definidas | Desde el ID de lugar, aunque no se muestra si el ID de lugar está demasiado lejos de las coordenadas de latitud y longitud |