Маршрутизация к точкам доступа

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

Фон

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

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

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

Начиная с версии 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 , а улучшения, специфичные для данного места, будут недоступны.

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

Для наиболее точного построения маршрута к конкретным точкам доступа, таким как входы, погрузочные площадки или обозначенные зоны погрузки/разгрузки, можно использовать 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()

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

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