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

По умолчанию Navigation SDK для iOS находит самый быстрый маршрут до путевой точки, но это не гарантирует, что пользователь прибудет на нужную сторону дороги, например на ту, где ждет клиент водителя такси. Функция Side of the Road Routing Preference позволяет обеспечить прибытие транспортного средства на нужную сторону дороги.
Принцип работы
Вы можете указать, с какой стороны дороги нужно прибыть в путевую точку, когда создаете ее. Это можно сделать двумя способами.
Предпочитать одну сторону дороги
Вы указываете географические координаты путевой точки, а затем устанавливаете флаг 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){...}];