This document describes how you can manage waypoint preferences for your app by using two features:
- Предпочтения по выбору маршрута вдоль дороги
- Остановка
Установить предпочтительный вариант маршрута по обочине дороги

По умолчанию SDK навигации для iOS находит кратчайший маршрут к путевой точке, однако это не гарантирует, что пользователь прибудет на нужную сторону дороги, например, на ту, где ожидает клиент водителя сервиса такси. Функция «Предпочтение стороны дороги» позволяет убедиться, что транспортное средство прибудет на правильную сторону дороги.
Как это работает
You set the preference for arriving on a particular side of the road when you create the waypoint for that stop. You can specify the preference in one of two ways.
Предпочтительнее ехать по одной и той же стороне дороги.
Вы указываете географические координаты путевой точки, а затем устанавливаете флаг 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;
The Navigation SDK chooses the road segment closest to the waypoint—that has a lane direction that aligns (within +/- 55 degrees) with the side of the road that the waypoint is on.
Установить предпочтительный вариант остановки
В некоторых местах безопасная остановка невозможна (например, на возвышенностях, паромах, в подземных переходах и других зонах с ограниченным доступом). Функция 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){...}];