O SDK Navigation para iOS oferece maneiras aprimoradas de especificar pontos de referência, fornecendo rotas mais precisas e uma melhor experiência de chegada, especialmente para destinos com várias entradas ou pontos de acesso específicos. É possível criar rotas para locais precisos usando um navigationPointToken ou combinando coordenadas de local com um ID de lugar para adicionar contexto.
O recurso de destaque do destino vai continuar sendo realizado, se aplicável.
Contexto
Antes da v10.10, era possível definir um Waypoint usando coordenadas de local ou um ID de lugar. Embora às vezes seja eficaz, o roteamento apenas para uma latitude e longitude pode levar a pontos de desembarque ou de encontro inadequados, principalmente para locais grandes, parques ou edifícios com várias entradas. O resultado pode ser ajustado ao segmento de via mais próximo, que pode não ser o ponto de acesso mais conveniente ou correto.
As opções de ponto de referência aprimoradas resolvem isso permitindo que você forneça mais contexto.
Usar um token de ponto de navegação
Para ter o roteamento mais preciso até pontos de acesso específicos, como entradas, docas de carga ou áreas de coleta designadas, use um navigationPointToken.
Esse token é obtido chamando o método Destinations da API Geocoding. Ele representa um ponto de navegação específico e roteável associado a um lugar.
Para especificar um token de ponto de navegação:
Extraia um
navigationPointTokenda resposta do método Destinations da API Geocoding.Especifique
navigationPointTokenao criar umGMSNavigationWaypoint.
Observação:não é possível especificar um token de ponto de navegação junto com um local e um 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"
Combinar ID do lugar e local
A partir da v10.10, você pode fornecer um ID de lugar e coordenadas de local ao criar um ponto de referência. Esse método é útil quando você quer especificar um ponto preciso (o local) e ainda fornecer o contexto do lugar geral (o ID de lugar). Isso permite que o SDK Navigation ofereça uma experiência de chegada mais rica, destacando o edifício de destino ou mostrando pontos de interesse próximos relacionados ao ID do 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"];
Considerações:
Quando você fornece placeID e location:
- A rota tem como foco principal o
locationespecificado. - O
placeIdé usado como contexto para melhorar a experiência de chegada. - Substituição:se o SDK determinar que o
placeIdfornecido corresponde a um recurso muito distante dolocationespecificado, oplaceIdserá ignorado. Nesse cenário, o roteamento vai continuar apenas para olocation, e as melhorias na experiência de chegada específicas do lugar não estarão disponíveis.
Resumo das configurações de ponto de referência válidas
| Especificação | location |
placeID |
navigationPointToken |
Comportamento de roteamento | Destaque do destino |
|---|---|---|---|---|---|
| Somente coordenadas de localização | set | ausente | ausente | Faz o roteamento para o segmento da via mais próximo das coordenadas definidas | Mostrado se o destino puder ser inferido com alta confiança |
| Somente ID de lugar | ausente | set | ausente | Trajetos até o ponto de navegação padrão do ID de lugar | Do ID do lugar |
| Apenas token de ponto de navegação | ausente | ausente | set | Trajetos até o ponto de navegação preciso representado pelo token | Do destino definido no método destinations original da solicitação da API Geocoding |
| Coordenadas de local e ID de lugar combinados | se | set | ausente | Faz o roteamento para o segmento da via mais próximo das coordenadas definidas | Do ID do lugar, mas não mostrado se o ID do lugar estiver muito longe das coordenadas de latitude/longitude |