زمانی که بهترین مسیر را برای یک سفر مشترک سواری تعیین می کنید، ممکن است سریع ترین مسیر همیشه بهترین گزینه نباشد. ممکن است بخواهید مسیر خود را سفارشی کنید. Routes Preferred API به شما امکان می دهد یک مسیر را با تعیین یک هدف مسیر با استفاده از روش ComputeCustomRoutes
سفارشی کنید.
هنگامی که یک مسیر سفارشی ایجاد می کنید، Routes Preferred API یک نشانه مسیر تولید می کند. سپس میتوانید توکن را به Navigation SDK برای اندروید منتقل کنید و مسیر سفارشی را بازیابی کنید.
برای اطلاعات بیشتر در مورد ایجاد یک مسیر سفارشی، به ایجاد مسیرهای سفارشی مراجعه کنید.
بازیابی یک مسیر سفارشی
میتوانید با استفاده از روش Navigator.setDestinations
یک مسیر سفارشی را با ارسال نشانه مسیر به Navigation SDK برای Android بازیابی کنید.
setDestinations(List<Waypoint> destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);
مسیر سفارشی هر مقصدی را که قبلاً تعیین شده بود لغو می کند. از محل شروع راننده مربوطه و شرایط جاده و ترافیک استفاده می کند.
Navigator.setDestinations
پارامترهای زیر را می گیرد:
پارامتر | شرح |
---|---|
مقاصد | لیست مقصد جدیدی که باید تنظیم شود. |
customRoutesOptions | گزینههایی که برای بازیابی یک مسیر از پیش محاسبهشده، بر اساس نشانهای که توسط Routes Preferred API بازگردانده میشود، استفاده میشوند. |
نمایش گزینه ها | گزینه هایی که برای نمایش مسیر استفاده خواهند شد. |
متد 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);