Rotear para pontos de navegação

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:

  1. Receba um navigationPointToken do método Destinations da resposta da API Geocoding.
  2. Crie um Waypoint usando o método setNavigationPointToken() 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 latlng especificado.
  • O placeId é usado como contexto para melhorar a experiência de chegada.
  • Substituição:se o SDK determinar que o placeId fornecido corresponde a um recurso muito distante do latlng informado, o placeId será ignorado. Nesse cenário, o roteamento vai continuar apenas para o latlng, 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