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

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

Функция выделения пункта назначения будет по-прежнему использоваться, если она применима.

Фон

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

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

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

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

Этот токен получается путем вызова метода Destinations API геокодирования . Он представляет собой конкретную, маршрутизируемую точку навигации, связанную с определенным местом.

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

  1. Получите объект navigationPointToken из метода Destinations ответа API геокодирования .

  2. Укажите значение navigationPointToken при создании объекта GMSNavigationWaypoint .

Примечание: Вы не можете одновременно указать токен точки навигации, местоположение и PlaceID.

Быстрый

// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
  navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"

Объедините идентификатор места и местоположение.

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

Быстрый

// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
  location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),  
  placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];

Соображения:

Если вы указываете и placeID , и location :

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

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

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