Roteamento para pontos de acesso

O SDK Navigation para Android 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 traçar rotas para locais precisos 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 seja eficaz para a maioria dos casos de uso, o roteamento apenas para uma latitude e longitude às vezes 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 trecho de rua mais próximo, que talvez não seja o ponto de acesso mais conveniente ou correto.

As opções de ponto de referência aprimoradas resolvem isso permitindo que mais contexto seja fornecido.

Combinar ID do lugar, 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.

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:

  1. Extraia um navigationPointToken da resposta do método Destinations 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()

Resumo das configurações de ponto de referência válidas

Método setLatLng() setPlaceIdString() setNavigationPointToken() Comportamento de roteamento Destaque do destino
Somente LatLng set ausente ausente Faz o roteamento para o segmento da via mais próximo das coordenadas definidas Não exibido
Somente ID do lugar ausente set ausente Rotas para o ponto de acesso padrão do ID do lugar De PlaceID
Somente token de ponto de navegação ausente ausente set Rotas para o ponto de acesso exato representado pelo token Do destino definido no método destinations original da solicitação da API Geocoding
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 PlaceID, mas não mostrado se o PlaceID estiver muito longe de LatLng