차량 공유 여행을 위한 최적의 경로를 결정할 때 가장 빠른 경로가 항상 최적의 옵션이 아닐 수 있습니다. 경로를 맞춤설정할 수도 있습니다. Routes Preferred API를 사용하면 ComputeCustomRoutes
메서드로 경로 목표를 지정하여 경로를 맞춤설정할 수 있습니다.
커스텀 경로를 만들면 Routes Preferred API가 경로 토큰을 생성합니다. 그러면 토큰을 Android용 Navigation SDK에 전달하고 커스텀 경로를 가져올 수 있습니다.
커스텀 경로를 만드는 방법에 대한 자세한 내용은 커스텀 경로 만들기를 참조하세요.
커스텀 경로 검색
Navigator.setDestinations
메서드를 사용하여 Android용 Navigation SDK에 경로 토큰을 전달하여 커스텀 경로를 검색할 수 있습니다.
setDestinations(List<Waypoint> destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);
커스텀 경로는 이전에 설정된 모든 목적지를 재정의합니다. 해당하는 운전자 출발 위치와 도로 및 교통 상황을 사용합니다.
Navigator.setDestinations
는 다음 매개변수를 사용합니다.
파라미터 | 설명 |
---|---|
대상 | 설정할 새 대상 목록입니다. |
customRoutesOptions | Routes Preferred API에서 반환된 토큰을 기준으로 미리 계산된 경로를 검색하는 데 사용되는 옵션입니다. |
displayOptions | 경로를 표시하는 데 사용할 옵션입니다. |
Navigator.setDestinations
메서드는 요청 상태를 반환합니다.
사용자의 위치에서 지정된 목적지까지의 경로를 찾으면 RouteStatus.OK
이 반환됩니다.
예시
다음 코드 예에서는 커스텀 경로를 검색하는 방법을 보여줍니다.
ArrayList <Waypoint> destinations = Lists.newArrayList();
Waypoint waypoint1 =
Waypoint.builder()
.setLatLng(10, 20)
.setTitle("title")
.setVehicleStopover(true)
.build();
destinations.add(waypoint1);
Waypoint waypoint2 =
Waypoint.builder()
.setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(waypoint2);
String routeToken = "route token returned by RoutesPreferred API";
CustomRoutesOptions customRoutesOptions =
CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(CustomRoutesOptions.TravelMode.TWO_WHEELER)
.build();
// Existing flow to get a Navigator.
NavigationApi.getNavigator(...);
// Existing flow for requesting routes.
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions);
// Or with display options.
DisplayOptions displayOptions = new DisplayOptions();
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions, displayOptions);