เมื่อคุณกำลังพิจารณาเส้นทางที่ดีที่สุดสำหรับการเดินทางโดยร่วมเดินทาง เส้นทางที่เร็วที่สุดอาจไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป คุณอาจต้องปรับเส้นทาง Routes Preferred API ช่วยให้คุณปรับแต่งเส้นทางได้โดยระบุวัตถุประสงค์ของเส้นทางโดยใช้เมธอด ComputeCustomRoutes
เมื่อคุณสร้างเส้นทางที่กำหนดเอง Routes Preferred API จะสร้างโทเค็นเส้นทาง จากนั้น คุณสามารถส่งโทเค็นไปยัง Navigation SDK สำหรับ Android และเรียกข้อมูลเส้นทางที่กำหนดเองได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างเส้นทางที่กำหนดเองได้ที่สร้างเส้นทางที่กำหนดเอง
กำลังดึงข้อมูลเส้นทางที่กำหนดเอง
คุณเรียกข้อมูลเส้นทางที่กำหนดเองได้โดยการส่งโทเค็นเส้นทางไปยัง
Navigation SDK สำหรับ Android โดยใช้เมธอด Navigator.setDestinations
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);