탐색 지점으로 안내

iOS용 Navigation SDK는 경유지 또는 내비게이션 지점을 지정하는 향상된 방법을 제공하여 특히 여러 출입구나 특정 내비게이션 지점이 있는 목적지의 경우 더 정확한 경로 안내와 더 나은 도착 환경을 제공합니다. 위치와 추가 경로 컨텍스트를 인코딩하는 문자열인 navigationPointToken을 사용하여 정확한 위치로 경로를 안내할 수 있습니다. 위도 및 경도 좌표를 장소 ID와 결합하여 컨텍스트를 추가할 수도 있습니다.

배경

v10.10 이전에는 위치 좌표 또는 장소 ID를 사용하여 Waypoint를 정의할 수 있었습니다. 위도와 경도로만 경로를 안내하는 것이 효과적인 경우도 있지만, 특히 여러 출입구가 있는 대규모 장소, 공원 또는 건물의 경우 최적의 하차 또는 승차 지점으로 이어지지 않을 수 있습니다. 그 결과 가장 가까운 도로 구간으로 스냅될 수 있으며, 이는 가장 편리하거나 올바른 액세스 지점이 아닐 수 있습니다.

향상된 경유지 옵션은 더 많은 컨텍스트를 제공할 수 있도록 하여 이 문제를 해결합니다.

내비게이션 지점 토큰 사용

출입구, 하역장 또는 지정된 승차 구역과 같은 특정 액세스 지점으로 가장 정확하게 경로를 안내하려면 navigationPointToken을 사용하면 됩니다.

이 토큰은 Destinations 메서드를 호출하여 Geocoding API에서 가져옵니다. 장소와 연결된 특정 경로 안내 가능 내비게이션 지점을 나타냅니다.

내비게이션 지점 토큰을 지정하려면 다음 단계를 따르세요.

  1. Geocoding API 응답의 Destinations 메서드에서 navigationPointToken을 가져옵니다.

  2. GMSNavigationWaypoint를 만들 때 navigationPointToken을 지정합니다.

참고: 위치 및 장소 ID와 함께 내비게이션 지점 토큰을 동시에 지정할 수는 없습니다.

Swift

// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
  navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"

내비게이션 지점 토큰 및 경로 토큰 사용

Geocoding API를 통해 내비게이션 지점 토큰을 가져오고, Routes API에서 경로 토큰을 가져온 다음, 내비게이션 지점 토큰과 경로 토큰을 모두 Navigation SDK에 전달할 수 있습니다. 이는 Routes API를 사용하여 이동 요금을 계산하고 내비게이션 지점 토큰의 정확성을 원하는 차량 공유 또는 배달과 같은 시나리오에서 유용합니다.

경로 토큰은 Navigation SDK에서 선택한 경로를 가격 책정에 사용된 경로로 편향시킵니다. 이렇게 하면 이동에 더 길거나 더 짧은 경로가 사용되어 '가격 충격'이 발생할 위험이 줄어듭니다.

내비게이션 지점 토큰을 사용하여 위치를 지정하고 경로 토큰을 만드는 방법에 관한 자세한 내용은 Routes API 문서를 참고하세요. 경로 토큰을 사용하여 경로를 계획하는 방법을 알아보려면 "경로 계획"을 참고하세요.

다음 다이어그램은 차량 공유 또는 배달 앱에서 내비게이션 지점 토큰과 경로 토큰을 함께 사용하는 방법을 보여줍니다.

차량 공유 또는 배송 사용 사례 다이어그램
차량 공유 또는 배달 사용 사례 다이어그램

장소 ID와 위치 결합

v10.10부터 경유지를 만들 때 장소 ID와 위치 좌표를 모두 제공할 수 있습니다. 이 메서드는 전체 장소의 컨텍스트 (장소 ID)를 제공하면서 정확한 지점 (위치)을 지정하려는 경우에 유용합니다. 이렇게 하면 Navigation SDK에서 목적지 건물을 강조표시하거나 장소 ID와 관련된 주변 관심 장소를 표시하여 더 풍부한 도착 환경을 제공할 수 있습니다.

Swift

// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
  location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),  
  placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];

고려사항:

placeIDlocation을 모두 제공하는 경우:

  • 경로는 주로 지정된 location을 타겟팅합니다.
  • placeId는 도착 환경을 개선하기 위한 컨텍스트로 사용됩니다.
  • 대체: SDK에서 제공된 placeId가 지정된 location에서 너무 멀리 떨어진 기능에 해당하는 것으로 판단하는 경우 placeId는 무시됩니다. 이 시나리오에서는 경로 안내가 location으로만 진행되며 장소별 도착 환경 개선사항은 사용할 수 없습니다.

유효한 경유지 구성 요약

사양 location placeID navigationPointToken 라우팅 동작 목적지 강조표시
위치 좌표만 set 없음 없음 정의된 좌표에 가장 가까운 도로 구간으로 경로 안내 목적지를 높은 신뢰도로 추론할 수 있는 경우 표시됨
장소 ID만 없음 set 없음 장소 ID의 기본 내비게이션 지점으로 경로 안내 장소 ID에서
내비게이션 지점 토큰만 없음 없음 set 토큰으로 표시되는 정확한 내비게이션 지점으로 경로 안내 Geocoding API 요청의 원래 목적지 메서드에 정의된 목적지에서
위치 좌표와 장소 ID 결합 se set 없음 정의된 좌표에 가장 가까운 도로 구간으로 경로 안내 장소 ID에서(장소 ID가 위도/경도 좌표에서 너무 멀리 떨어져 있는 경우 표시되지 않음)