O SDK Navigation para Android oferece maneiras aprimoradas de especificar pontos de referência, proporcionando rotas mais precisas e uma melhor experiência de chegada, especialmente para destinos com várias entradas ou pontos de navegação específicos. É possível
traçar rotas para locais exatos usando um navigationPointToken ou combinando
coordenadas de latitude e longitude com um ID de lugar para adicionar contexto. O recurso de destaque do destino vai continuar sendo usado, se aplicável.
Contexto
Antes da v7.4, era possível definir um Waypoint usando coordenadas de latitude e longitude 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 embarque 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 talvez não seja o ponto de navegação mais conveniente ou correto.
As opções de ponto de parada aprimoradas resolvem isso permitindo que mais contexto seja fornecido.
Usar um token de ponto de navegação
Para o roteamento mais preciso até pontos de navegação 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:
- Receba um
navigationPointTokendo método Destinations da resposta da API Geocoding. - Crie um
Waypointusando o métodosetNavigationPointToken()no builder.
Observação:ao usar setNavigationPointToken(), não é possível usar simultaneamente
setLatLng() ou setPlaceIdString(). Esses métodos são mutuamente exclusivos com
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()
Combinar ID do lugar e latitude e longitude
A partir da v7.4, é possível fornecer um ID de lugar e coordenadas de latitude e longitude ao criar um Waypoint. Esse método é útil quando você quer especificar um ponto exato (latitude/longitude) e ainda fornecer o contexto do lugar geral (ID do 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.
// 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()
Considerações
Quando você fornece placeId e latlng:
- A rota tem como foco principal o
latlngespecificado. - 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 dolatlnginformado, oplaceIdserá ignorado. Nesse cenário, o roteamento vai continuar apenas para olatlng, 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
| Método | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Comportamento de roteamento | Destaque do destino |
|---|---|---|---|---|---|
| Apenas coordenadas de latitude/longitude | 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 latitude/longitude e ID do lugar combinados | set | 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 |