경유지 관리

이 문서에서는 다음 두 가지 기능을 사용하여 앱의 경유지 환경설정을 관리하는 방법을 설명합니다.

  • 도로 측면 경로 환경설정
  • 스탑오버

도로 측면 라우팅 환경설정 지정

기본적으로 iOS용 Navigation SDK는 경유지까지 가장 빠른 경로를 찾지만, 이 경우 사용자가 원하는 도로 쪽(예: 차량 공유 운전자의 고객이 기다리는 도로 쪽)에 도착한다는 보장은 없습니다. 도로변 라우팅 환경설정 기능을 사용하면 차량이 올바른 도로변에 도착하도록 할 수 있습니다.

작동 방식

해당 정류장의 경유지를 만들 때 특정 도로 측면에 도착하도록 환경설정을 지정합니다. 두 가지 방법 중 하나로 환경설정을 지정할 수 있습니다.

같은 쪽 도로 선호

경로의 지리적 좌표를 제공한 다음 경로가 가장 가까운 인도로 스냅되어 경로와 동일한 도로 측면에 도착하는 것을 선호함을 나타내는 플래그 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도 이내로 정렬되어 있습니다.

경유지 환경설정 지정

특정 장소에서는 사용자가 안전하게 멈출 수 없습니다 (예: 고지대, 페리, 지하 장소, 접근이 제한된 기타 지역). 경유지 기능은 사용자가 정차하기에 적합하지 않은 위치인 경우 경유지를 근처 장소로 재배치합니다. vehicleStopoverYES로 설정하면 대체 위치가 있는 경우 경로가 계산될 때 경유지가 자동으로 재배치됩니다.

작동 방식

정차 지점의 경유지를 만들 때 해당 정차 지점의 환경설정을 설정합니다. 이렇게 하려면 다음 예와 같이 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){...}];