このドキュメントでは、次の 2 つの機能を使用して、アプリのウェイポイント設定を管理する方法について説明します。
- 道路の側面のルーティング設定
- 乗り継ぎ
道路の側面のルーティング設定を設定
デフォルトでは、iOS 向け Navigation SDK は、ウェイポイントまでの最短ルートを検索します。ただし、ユーザーが目的の道路側(ライドシェア ドライバーの乗客が待機している道路側など)に到着するとは限りません。[道路の側面のルーティング設定] 機能を使用すると、車両が道路の正しい側に到着するように指定できます。
仕組み
道路の特定の側に到着する優先度を設定するには、その停留所のウェイポイントを作成するときに設定します。設定は次の 2 つの方法で指定できます。
道路の同じ側を優先する
ウェイポイントの地理座標を指定し、ウェイポイントと同じ側の道路(最寄りの歩道にスナップ)に到着することを示すフラグ 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){...}];