Android용 Navigation SDK는 경유지를 지정하는 향상된 방법을 제공하여 특히 출입구가 여러 개이거나 특정 내비게이션 지점이 있는 목적지의 경우 더 정확한 경로 안내와 더 나은 도착 환경을 제공합니다. navigationPointToken을 사용하거나 위도 및 경도 좌표를 장소 ID와 결합하여 추가 컨텍스트를 제공하여 정확한 위치로 경로를 안내할 수 있습니다. 목적지 강조표시 기능은 해당하는 경우 계속 실행됩니다.
배경
v7.4 이전에는 위도 및 경도 좌표 또는 장소 ID를 사용하여 Waypoint를 정의할 수 있었습니다. 위도 및 경도 좌표로만 경로를 안내하는 것이 효과적인 경우도 있지만, 특히 출입구가 여러 개인 대규모 장소, 공원 또는 건물의 경우 최적의 하차 또는 승차 지점으로 이어지지 않을 수 있습니다. 결과가 가장 편리하거나 올바른 내비게이션 지점이 아닐 수 있는 가장 가까운 도로 구간에 맞추기될 수 있습니다.
향상된 경유지 옵션은 더 많은 컨텍스트를 제공할 수 있도록 하여 이 문제를 해결합니다.
내비게이션 지점 토큰 사용
출입구, 하역장 또는 지정된 승차 구역과 같은 특정 내비게이션 지점으로 가장 정확하게 경로를 안내하려면 navigationPointToken을 사용하면 됩니다. 이 토큰은 destinations
Geocoding
API의 메서드를 호출하여 가져옵니다. 장소와 연결된 특정 경로 안내 가능 내비게이션 지점을 나타냅니다.
내비게이션 지점 토큰을 지정하려면 다음 단계를 따르세요.
- Geocoding API 응답의 Destinations 메서드에서
navigationPointToken을 가져옵니다. - 빌더에서
setNavigationPointToken()메서드를 사용하여Waypoint를 만듭니다.
참고: setNavigationPointToken()을 사용하는 경우 setLatLng() 또는 setPlaceIdString()을 동시에 사용할 수 없습니다. 이러한 메서드는 setNavigationPointToken()과 상호 배타적입니다.
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
장소 ID와 위도 및 경도 결합
v7.4부터 Waypoint를 만들 때 장소 ID와 위도 및 경도 좌표를 모두 제공할 수 있습니다. 이 메서드는 전체 장소의 컨텍스트 (장소 ID)를 제공하면서 정확한 지점 (위도/경도)을 지정하려는 경우에 유용합니다. 이를 통해 Navigation SDK는 목적지 건물을 강조표시하거나 장소 ID와 관련된 주변 관심 지점을 표시하여 더 풍부한 도착 환경을 제공할 수 있습니다.
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
고려사항
placeId와 latlng을 모두 제공하는 경우:
- 경로는 주로 지정된
latlng을 타겟팅합니다. placeId는 도착 환경을 개선하기 위한 컨텍스트로 사용됩니다.- 대체: SDK에서 제공된
placeId가 지정된latlng에서 너무 멀리 떨어진 기능에 해당하는 것으로 판단하는 경우placeId는 무시됩니다. 이 시나리오에서는 경로 안내가latlng으로만 진행되며 장소별 도착 환경 개선은 사용할 수 없습니다.
유효한 경유지 구성 요약
| 메서드 | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
라우팅 동작 | 목적지 강조표시 |
|---|---|---|---|---|---|
| 위도/경도 좌표만 | set | 없음 | 없음 | 정의된 좌표에 가장 가까운 도로 구간으로 경로 안내 | 목적지를 높은 신뢰도로 추론할 수 있는 경우 표시됨 |
| 장소 ID만 | 없음 | set | 없음 | 장소 ID의 기본 내비게이션 지점으로 경로 안내 | 장소 ID에서 |
| 내비게이션 지점 토큰만 | 없음 | 없음 | set | 토큰으로 표시되는 정확한 내비게이션 지점으로 경로 안내 | Geocoding API 요청의 원래 destinations 메서드에 정의된 목적지에서 |
| 위도/경도 좌표와 장소 ID 결합 | set | set | 없음 | 정의된 좌표에 가장 가까운 도로 구간으로 경로 안내 | 장소 ID에서(장소 ID가 위도/경도 좌표에서 너무 멀리 떨어져 있는 경우 표시되지 않음) |