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

По умолчанию 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;
Навигационный SDK выбирает ближайший к путевой точке участок дороги, направление полосы движения которого совпадает (с точностью до +/- 55 градусов) с той стороной дороги, на которой находится путевая точка.
Установить предпочтительный вариант остановки
В некоторых местах безопасная остановка невозможна (например, на возвышенностях, паромах, в подземных переходах и других зонах с ограниченным доступом). Функция Stopover перемещает путевую точку в ближайшее место, если ее текущее местоположение не подходит для остановки пользователя. Если установить 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: {...})
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){...}];