Маршрут к точкам навигации

SDK навигации для Android предлагает расширенные возможности указания путевых точек, обеспечивая более точную маршрутизацию и более удобное прибытие, особенно для пунктов назначения с несколькими входами или определенными точками навигации. Вы можете прокладывать маршруты к точным местоположениям, используя navigationPointToken или комбинируя координаты широты и долготы с идентификатором места (Place ID) для получения дополнительного контекста. Функция выделения пунктов назначения будет по-прежнему использоваться, если это применимо.

Фон

До версии 7.4 можно было задать Waypoint используя либо координаты широты и долготы , либо идентификатор места. Хотя это иногда эффективно, построение маршрута исключительно по широте и долготе может привести к неоптимальным точкам высадки или посадки, особенно в больших помещениях, парках или зданиях с несколькими входами. В результате маршрут может автоматически привязаться к ближайшему участку дороги, что может оказаться не самой удобной или правильной точкой навигации.

Расширенные возможности настройки путевых точек решают эту проблему, предоставляя больше контекстной информации.

Используйте токен точки навигации

Для наиболее точного построения маршрута к конкретным точкам навигации, таким как входы, погрузочные площадки или обозначенные зоны погрузки/разгрузки, можно использовать navigationPointToken . Этот токен получается путем вызова метода destinations API геокодирования . Он представляет собой конкретную, маршрутизируемую точку навигации, связанную с определенным местом.

Чтобы указать токен точки навигации:

  1. Получите объект navigationPointToken из метода Destinations ответа API геокодирования .
  2. Создайте Waypoint используя метод setNavigationPointToken() в конструкторе.

Примечание: При использовании setNavigationPointToken() нельзя одновременно использовать setLatLng() или setPlaceIdString() . Эти методы взаимоисключающие с 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()

Объедините идентификатор места, широту и долготу.

Начиная с версии 7.4, при создании Waypoint можно указать как идентификатор места (Place ID), так и координаты широты и долготы. Этот метод полезен, когда необходимо указать точную точку (широту/долготу), сохраняя при этом контекст всего места (идентификатор места). Это позволяет SDK навигации предоставлять более информативный интерфейс прибытия, выделяя здание назначения или отображая близлежащие достопримечательности, связанные с идентификатором места.

// 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()

Соображения

Если вы указываете и placeId , и latlng :

  • Маршрут в первую очередь ориентирован на указанную latlng .
  • Идентификатор placeId используется в качестве контекста для улучшения процесса прибытия.
  • Резервный вариант: Если SDK определит, что предоставленный placeId соответствует объекту, находящемуся слишком далеко от заданной latlng , placeId будет проигнорирован. В этом случае маршрутизация будет осуществляться только по latlng , а улучшения, специфичные для данного места, будут недоступны.

Сводка допустимых конфигураций путевых точек

Метод setLatLng() setPlaceIdString() setNavigationPointToken() Поведение маршрутизации Выделение достопримечательностей
Только координаты широты/долготы набор отсутствующий отсутствующий Маршруты к участку дороги, ближайшему к заданным координатам. Доказано, что пункт назначения можно определить с высокой степенью достоверности.
Только удостоверение личности. отсутствующий набор отсутствующий Маршруты к точке навигации по умолчанию для идентификатора места. Исходный идентификатор места
только токен точки навигации отсутствующий отсутствующий набор Маршруты к точной точке навигации, представленной этим маркером. Исходный пункт назначения определяется в методе `from original destinations` запроса API геокодирования.
Координаты широты/долготы и идентификатор места в совокупности. набор набор отсутствующий Маршруты к участку дороги, ближайшему к заданным координатам. Информация предоставляется на основе идентификатора места (Place ID), хотя и не отображается, если идентификатор места находится слишком далеко от координат широты/долготы.