Управление путевыми точками

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

  • Настройки маршрутизации по обочине дороги
  • Остановка в пути

Установить предпочтения маршрутизации стороны дороги

По умолчанию Navigation SDK для iOS находит самый быстрый маршрут к путевой точке, однако это не гарантирует, что пользователь прибудет на нужную сторону дороги, например, на ту сторону дороги, которую ждет клиент водителя каршеринга. на. Функция выбора маршрута по обочине дороги позволяет гарантировать, что транспортное средство прибудет на правильную сторону дороги.

Как это работает

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

Предпочитаю одну и ту же сторону дороги

Вы предоставляете географические координаты путевой точки, а затем устанавливаете флаг preferSameSideOfRoad , который указывает, что вы предпочитаете прибыть на ту же сторону дороги, что и путевая точка, — привязанную к ближайшему тротуару.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                   preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;

Предпочтительный заголовок сегмента

Вы указываете географические координаты промежуточной точки, а затем указываете заголовок preferredSegmentHeading , который соответствует направлению транспортного потока на той же стороне дороги, что и пункт назначения.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

Navigation SDK выбирает ближайший к путевой точке сегмент дороги, направление полосы которого совпадает (в пределах +/- 55 градусов) со стороной дороги, на которой находится путевая точка.

Установить предпочтения остановки в пути

В некоторых местах пользователи не могут безопасно остановиться (например, на возвышенностях, на паромах, в подземельях и других местах с ограниченным доступом). Функция «Остановка» перемещает путевую точку в ближайшее место, если ее местоположение не позволяет пользователю сделать остановку. Если для параметра vehicleStopover установлено значение YES , путевая точка автоматически перемещается при расчете маршрута, если доступно альтернативное местоположение.

Как это работает

Вы устанавливаете предпочтение остановки в пути при создании путевой точки для этой остановки. Для этого установите предпочтение остановки в пути GMSNavigationMutableWaypoint , как показано в следующем примере:

Быстрый

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")!
waypoint.vehicleStopover = true
mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})

Цель-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationMutableWaypoint *waypoint =
    [[GMSNavigationMutableWaypoint alloc] initWithLocation:location
                                                     title:@"waypoint from location"];
waypoint.vehicleStopover = YES;
[_mapView.navigator setDestinations:@[waypoint1]
                     routingOptions:routingOptions
                           callback:^(GMSRouteStatus routeStatus){...}];