กําหนดเส้นทางโทเค็น

เมื่อคุณกำลังพิจารณาเส้นทางที่ดีที่สุดสำหรับการเดินทางโดยร่วมเดินทาง เส้นทางที่เร็วที่สุดอาจไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป คุณอาจต้องปรับเส้นทาง 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);