Android용 Navigation SDK는 경유지를 지정하는 향상된 방법을 제공하여 특히 입구가 여러 개이거나 특정 진입점이 있는 목적지의 경우 더 정확한 경로와 더 나은 도착 환경을 제공합니다. navigationPointToken를 사용하거나 위도 및 경도 좌표를 장소 ID와 결합하여 추가 컨텍스트를 제공하여 정확한 위치로 라우팅할 수 있습니다. 해당하는 경우 대상 강조 표시 기능이 계속 실행됩니다.
배경
v7.4 이전에는 위도 및 경도 좌표 또는 장소 ID를 사용하여 Waypoint를 정의할 수 있었습니다. 대부분의 사용 사례에서 효과적이지만 위도와 경도로만 경로를 지정하면 특히 대규모 장소, 공원 또는 출입구가 여러 개인 건물의 경우 최적의 하차 또는 승차 지점이 아닐 수 있습니다. 결과가 가장 편리하거나 올바른 액세스 포인트가 아닐 수 있는 가장 가까운 도로 구간에 스냅될 수 있습니다.
향상된 경유지 옵션은 더 많은 컨텍스트를 제공할 수 있도록 하여 이 문제를 해결합니다.
장소 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로만 진행되며 장소별 도착 환경 개선사항은 사용할 수 없습니다.
탐색 포인트 토큰 사용
출입구, 하역장, 지정된 수령 지역과 같은 특정 액세스 포인트로 가장 정확하게 안내하려면 navigationPointToken을 사용하면 됩니다. 이 토큰은 Geocoding API의 destinations 메서드를 호출하여 가져옵니다.
장소와 연결된 라우팅 가능한 특정 탐색 지점을 나타냅니다.
탐색 포인트 토큰을 지정하려면 다음 단계를 따르세요.
- 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()
유효한 경유지 구성 요약
| 메서드 | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
라우팅 동작 | 대상 강조 표시 |
|---|---|---|---|---|---|
| LatLng만 | set | 없음 | 없음 | 정의된 좌표에 가장 가까운 도로 구간으로 라우팅 | 게재되지 않음 |
| 장소 ID만 | 없음 | set | 없음 | 장소 ID의 기본 액세스 포인트로 연결되는 경로 | 출발지 PlaceID |
| 탐색 포인트 토큰만 | 없음 | 없음 | set | 토큰으로 표시되는 정확한 액세스 포인트로 연결되는 경로 | 원래 Geocoding API의 destinations 메서드 요청에 정의된 목적지 |
| LatLng 및 장소 ID 결합 | set | set | 없음 | 정의된 좌표에 가장 가까운 도로 구간으로 라우팅 | PlaceID에서 가져오지만 PlaceID가 LatLng에서 너무 멀리 떨어져 있는 경우 표시되지 않음 |