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

По умолчанию 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, как показано в следующем примере:
Swift
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: {...})
Objective-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){...}];