iOS용 Navigation SDK는 경유지를 지정하는 향상된 방법을 제공하여 특히 출입구가 여러 개이거나 특정 진입점이 있는 목적지의 경우 더 정확한 경로와 더 나은 도착 환경을 제공합니다. navigationPointToken를 사용하거나 위치 좌표를 장소 ID와 결합하여 추가 컨텍스트를 제공하면 정확한 위치로 라우팅할 수 있습니다.
해당하는 경우 대상 강조 표시 기능은 계속 실행됩니다.
배경
v10.10 이전에는 위치 좌표 또는 장소 ID를 사용하여 Waypoint를 정의할 수 있었습니다. 위도와 경도로만 경로를 지정하는 것이 효과적인 경우도 있지만, 특히 대규모 장소, 공원 또는 출입구가 여러 개인 건물의 경우 최적의 하차 또는 승차 지점이 아닐 수 있습니다. 결과가 가장 편리하거나 올바른 액세스 포인트가 아닐 수 있는 가장 가까운 도로 구간에 스냅될 수 있습니다.
향상된 경유지 옵션을 사용하면 더 많은 컨텍스트를 제공할 수 있으므로 이 문제가 해결됩니다.
탐색 포인트 토큰 사용
출입구, 하역장, 지정된 수령 지역과 같은 특정 액세스 포인트로 가장 정확하게 안내하려면 navigationPointToken을 사용하면 됩니다.
이 토큰은 Geocoding API의 Destinations 메서드를 호출하여 가져옵니다. 장소와 연결된 라우팅 가능한 특정 탐색 지점을 나타냅니다.
탐색 포인트 토큰을 지정하려면 다음 단계를 따르세요.
Geocoding API의 Destinations 메서드 응답에서
navigationPointToken를 가져옵니다.GMSNavigationWaypoint을 만들 때navigationPointToken을 지정합니다.
참고: 위치 및 PlaceID와 함께 탐색 포인트 토큰을 동시에 지정할 수는 없습니다.
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"
장소 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"];
고려사항:
placeID와 location을 모두 제공하는 경우:
- 경로는 주로 지정된
location를 타겟팅합니다. placeId는 도착 환경을 개선하기 위한 컨텍스트로 사용됩니다.- 대체: SDK에서 제공된
placeId가 지정된location와 너무 멀리 떨어진 기능에 해당하는 것으로 판단되면placeId가 무시됩니다. 이 시나리오에서는 라우팅이location로만 진행되며 장소별 도착 환경 개선사항은 사용할 수 없습니다.
유효한 경유지 구성 요약
| 사양 | location |
placeID |
navigationPointToken |
라우팅 동작 | 대상 강조 표시 |
|---|---|---|---|---|---|
| 위치 좌표만 | set | 없음 | 없음 | 정의된 좌표에 가장 가까운 도로 구간으로 라우팅 | 목적지를 높은 신뢰도로 추론할 수 있는 경우 표시됩니다. |
| 장소 ID만 | 없음 | set | 없음 | 장소 ID의 기본 탐색 지점으로 연결되는 경로 | 시작 장소 ID |
| 탐색 포인트 토큰만 | 없음 | 없음 | set | 토큰으로 표시되는 정확한 탐색 지점으로 이어지는 경로 | 원래 Geocoding API의 목적지 메서드 요청에 정의된 목적지 |
| 위치 좌표와 장소 ID가 결합됨 | se | set | 없음 | 정의된 좌표에 가장 가까운 도로 구간으로 라우팅 | 장소 ID에서 가져옴(장소 ID가 위도/경도 좌표에서 너무 멀리 떨어져 있는 경우 표시되지 않음) |