บางครั้งคุณอาจต้องวางแผนเส้นทางที่แอปแสดงต่อผู้ใช้ การใช้ โทเค็นเส้นทางจาก Routes API (หรือ Routes Preferred API) จะช่วยคุณระบุ 2 อย่างสำหรับเส้นทางที่วางแผนไว้
เส้นประกอบสำหรับเส้นทาง
วัตถุประสงค์ของเส้นทางของคุณ
ตัวอย่างเช่น ต่อไปนี้เป็นตัวอย่างของวัตถุประสงค์ในการกำหนดเส้นทางที่คุณอาจมี
ลดเวลาในการจัดส่ง: ธุรกิจที่จัดส่งอาหารอาจต้องการลด กับระยะเวลาที่ใช้จัดส่งอาหาร
ลดเวลาในการเดินทางหรือการใช้เชื้อเพลิง: ธุรกิจโลจิสติกส์อาจต้องการ ปรับปรุงประสิทธิภาพของคนขับและลดต้นทุนการใช้เชื้อเพลิง
ลดเวลาในการปลายทาง: การดำเนินการมอบหมายบริการอาจต้องการ ลดเวลาที่ใช้ในการดึงโอเปอเรเตอร์มาที่คำของาน
ลดค่าใช้จ่ายและเพิ่มความปลอดภัย: ธุรกิจที่ให้บริการร่วมเดินทางอาจต้องการค้นหา เส้นทางที่ค่าใช้จ่ายน้อยกว่าสำหรับผู้ขับขี่และหลีกเลี่ยงพื้นที่บางส่วนเพื่อความปลอดภัย เหตุผล
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการวางแผนเส้นทางโดยใช้โทเค็นเส้นทาง โปรดดู ขอโทเค็นเส้นทาง
เหตุผลที่ควรใช้โทเค็นเส้นทางสำหรับวัตถุประสงค์ของเส้นทาง
เมื่อใช้โทเค็นเส้นทางจาก Routes หรือ Routes Preferred API คุณจึงมี ควบคุมเส้นทางที่ให้ไว้:
วางแผนเส้นทางล่วงหน้าเพื่อให้ Navigation SDK ใช้งาน หากเป็นไปได้
เลือกเส้นทางที่ดีที่สุดที่ Navigation SDK จะใช้ หากคุณขอโทเค็นเส้นทางเมื่อสร้างเส้นทางใน Routes API คุณจะได้รับโทเค็นเส้นทาง สำหรับแต่ละเส้นทางที่สร้างขึ้น จากนั้นคุณสามารถเลือกโทเค็น ที่คุณต้องการใช้เมื่อส่งผ่านไปยัง SDK การนำทาง
ประมาณราคาล่วงหน้า รวมถึงการประมาณเวลาถึงโดยประมาณและระยะทาง แม้ว่าค่าใช้จ่ายและเวลาจริงอาจแตกต่างกันไป แต่การประมาณนี้จะลดช่องว่างระหว่าง ค่าใช้จ่ายที่คาดไว้และเส้นทางจริง
ระบุวัตถุประสงค์ของเส้นทางขั้นสูง เช่น การกำหนดเส้นทางแบบประหยัดหรือสั้นที่สุด เส้นทาง
วิธีการทำงานของโทเค็นเส้นทาง API ของ Routes
คุณใช้ Routes API หรือ Routes Preferred API ได้ เพื่อวางแผนเส้นทางโดยใช้วัตถุประสงค์ของเส้นทาง Routes API จะแสดงผล โทเค็นเส้นทางที่คุณสามารถส่งไปยัง Navigation SDK เพื่อแนะนำวิธีการ กำหนดเส้นทางให้กับยานพาหนะของคุณ
สิ่งที่จะเกิดขึ้นเมื่อคุณขอและใช้โทเค็นเส้นทางจาก Routes API:
Routes API จะแสดงโทเค็นเส้นทางที่เข้ารหัสซึ่งมีเส้นทาง เส้นประกอบและวัตถุประสงค์ของเส้นทาง
คุณส่งโทเค็นเส้นทางไปยัง Navigation SDK
Navigation SDK จะเรียกคืนเส้นทาง หรือถ้าเส้นทางไม่ได้ พร้อมใช้งานเนื่องจากการเปลี่ยนแปลงเงื่อนไข รายการโฆษณาจะดึงข้อมูลการจับคู่ที่ดีที่สุด เส้นทาง
ขณะขับรถ หากการจราจรหรือสภาพถนนอื่นๆ เปลี่ยนแปลงไป หรือหาก รถเบี่ยงออกจากเส้นทางที่วางแผนไว้ เส้นทางที่ถูกดัดแปลงอย่างต่อเนื่อง พยายามจับคู่เส้นทางที่ดีที่สุดตามวัตถุประสงค์ของเส้นทางในโทเค็น
กระบวนการนี้ช่วยเพิ่มระยะใกล้ของเส้นทางจริงกับเส้นทางที่คุณวางแผนไว้ให้ได้มากที่สุด
สาเหตุที่อาจไม่ได้ไปตามเส้นทางที่วางแผนไว้ทุกประการ
ให้คิดว่าเส้นทางและวัตถุประสงค์ของเส้นทางที่วางแผนไว้เป็นแนวทางที่ควรปฏิบัติตาม ไม่ได้กำหนดไว้เป็นกฎเกณฑ์ คุณอาจเห็นความแตกต่างระหว่างเส้นทางที่วางแผนไว้กับ เส้นทางที่ระบุโดยการนำทางเนื่องจากถนนแต่ละเส้น เงื่อนไข ตำแหน่งเริ่มต้น หรือพารามิเตอร์อื่นๆ ที่เปลี่ยนแปลงไปนับตั้งแต่คุณ สร้างเส้นทางที่วางแผนไว้ ความแตกต่างนี้อาจทำให้ เป้าหมายที่วางแผนไว้และจริงสำหรับระยะทางและเวลาถึงโดยประมาณ รวมถึงการเดินทางที่สำคัญอื่นๆ คุณภาพ
วางแผนเส้นทางโดยใช้โทเค็นเส้นทาง
คุณสามารถวางแผนเส้นทางด้วยการสร้างโทเค็นเส้นทางแล้วส่งต่อไปยัง Navigation SDK ตามที่อธิบายไว้ในขั้นตอนต่อไปนี้
ขั้นตอนที่ 1: สร้างโทเค็นเส้นทางโดยใช้ Routes หรือ Routes Preferred API
ขอโทเค็นเส้นทางโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
Routes API:
computeRoutes
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ เมื่อส่งคำขอโทเค็นเส้นทางใน Routes API โปรดดู คำนวณเส้นทาง และ ขอโทเค็นเส้นทางRoutes Preferred API:
computeCustomRoutes
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ เมื่อส่งคำขอโทเค็นเส้นทางใน Routes Preferred API โปรดดู วางแผนเส้นทาง
ตั้งค่าคำขอเส้นทางเพื่อให้เป็นไปตามข้อกำหนดในการใช้เส้นทาง โทเค็น:
- ตั้งค่า
travel_mode
เป็นDRIVING
- โปรดตั้งค่า
routing_preference
เป็นTRAFFIC_AWARE
หรือTRAFFIC_AWARE_OPTIMAL
- อย่าใช้จุดอ้างอิง Via
- ตั้งค่า
ขั้นตอนที่ 2: ส่งโทเค็นเส้นทางไปยัง Navigation SDK
จัดเก็บโทเค็นเส้นทาง: ใน SDK การนำทาง ให้ตั้งค่าสตริง เพื่อจัดเก็บโทเค็นเส้นทาง เช่น
String routeToken = "route token returned by Routes API";
ตัวอย่างโทเค็นของเส้นทางที่ส่งคืน
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
ส่งโทเค็นเส้นทางไปยัง Navigation SDK โดยใช้ เมธอด
Navigator.setDestinations
ซึ่งระบุปลายทางเดียวกัน จุดอ้างอิงที่คุณใช้เมื่อสร้างโทเค็นเส้นทาง:setDestinations(List
destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions); เช่น
CustomRoutesOptions customRoutesOptions = CustomRoutesOptions.builder() .setRouteToken(routeToken) .build();
เมธอด Navigator.setDestinations
จะแสดงสถานะของคำขอ
หากพบเส้นทางจากตำแหน่งของรถไปยังปลายทางที่ระบุ
ผลลัพธ์จะกลับคืนมาRouteStatus.OK
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการนี้ ดูที่
Navigator.setDestinations
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีระบุเส้นทางที่วางแผนไว้โดยใช้ เพื่อกำหนดเส้นทาง
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 Routes 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);
โทเค็นเส้นทางและ Navigation SDK ทำงานร่วมกันอย่างไร
ต่อไปนี้เป็นลักษณะของเส้นทางที่สร้างโดย Navigation SDK และ เส้นทางในโทเค็นเส้นทางมีการโต้ตอบ:
ลบล้างปลายทางที่ตั้งค่าไว้ก่อนหน้านี้
ใช้ตำแหน่งสตาร์ทรถ
ปรับตามสภาพการจราจรและสภาพการจราจร โปรดดู เหตุใดระบบจึงอาจไม่ตามเส้นทางที่วางแผนไว้ทุกประการ
ไม่สนใจตัวเลือกที่เกี่ยวข้องกับการกำหนดเส้นทางต่อไปนี้ที่ไม่จำเป็น
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
ติดตาม:
ตัวเลือกที่เกี่ยวข้องกับจุดอ้างอิง เช่น ค่ากำหนดข้างถนน
วัตถุประสงค์ของเส้นทาง หาก Navigation SDK จำเป็นต้อง ปรับเส้นทางที่ส่งคืนซึ่งใช้วัตถุประสงค์ของเส้นทางที่คุณระบุเมื่อ กำลังขอโทเค็นเส้นทาง ด้วยเหตุนี้ คุณจึงควรใช้วิธีการเดียวกันนี้ ตัวเลือกที่เกี่ยวข้องกับจุดอ้างอิงที่คุณระบุใน Routes API