บางครั้งคุณอาจต้องการวางแผนเส้นทางที่แอปจะแสดงให้ผู้ใช้ การใช้โทเค็นเส้นทางจาก Routes API, Routes Preferred API หรือ Route Optimization API จะช่วยให้คุณระบุ 2 สิ่งสำหรับเส้นทางที่วางแผนไว้ได้ ดังนี้
เส้นประกอบสำหรับเส้นทาง
วัตถุประสงค์ของเส้นทาง
ตัวอย่างวัตถุประสงค์การกำหนดเส้นทางที่คุณอาจมี
ลดเวลาในการจัดส่งให้เหลือน้อยที่สุด: ธุรกิจจัดส่งอาหารอาจต้องการ ลดเวลาที่ใช้ในการจัดส่งอาหาร
ลดระยะเวลาเดินทางหรือการใช้น้ำมันให้เหลือน้อยที่สุด: ธุรกิจโลจิสติกส์อาจต้องการปรับปรุงประสิทธิภาพของคนขับและลดต้นทุนค่าน้ำมัน
ลดเวลาในการเดินทางไปยังจุดหมายให้เหลือน้อยที่สุด: การดำเนินการจัดส่งบริการอาจต้องการ ลดเวลาที่ใช้ในการส่งผู้ให้บริการไปยังคำขอบริการ
ลดต้นทุนและเพิ่มความปลอดภัย: ธุรกิจบริการร่วมเดินทางอาจต้องการ ค้นหาเส้นทางที่มีค่าใช้จ่ายน้อยลงสำหรับผู้โดยสารและหลีกเลี่ยงบางพื้นที่ด้วยเหตุผลด้านความปลอดภัย
ดูข้อมูลเพิ่มเติมเกี่ยวกับการวางแผนเส้นทางโดยใช้โทเค็นเส้นทางได้ที่ขอโทเค็นเส้นทางใน Routes API และเปลี่ยนเส้นประกอบและโทเค็นเส้นทางใน Route Optimization API
เหตุผลที่ควรใช้โทเค็นเส้นทางสำหรับวัตถุประสงค์ของเส้นทาง
เมื่อใช้โทเค็นเส้นทางจาก Routes API, Routes Preferred API หรือ Route Optimization API คุณจะควบคุมเส้นทางที่แสดงได้มากขึ้น ดังนี้
วางแผนเส้นทางล่วงหน้า เพื่อให้ Navigation SDK ใช้ได้เมื่อเป็นไปได้
เลือกเส้นทางที่ดีที่สุดเพื่อให้ Navigation SDK ใช้ หากคุณขอโทเค็นเส้นทางเมื่อสร้างเส้นทางใน Routes API คุณจะได้รับโทเค็นเส้นทางสำหรับแต่ละเส้นทางที่สร้างขึ้น จากนั้นคุณสามารถเลือกโทเค็นสำหรับเส้นทางที่ต้องการใช้เมื่อส่งโทเค็นไปยัง Navigation SDK
ประมาณราคาล่วงหน้า รวมถึงการประมาณเวลาถึงที่หมายและ ระยะทาง แม้ว่าต้นทุนและเวลาจริงอาจแตกต่างกันไป แต่การประมาณนี้จะช่วยลดช่องว่างระหว่างต้นทุนเส้นทางที่คาดไว้กับต้นทุนจริง
ระบุวัตถุประสงค์ของเส้นทางขั้นสูงเพิ่มเติม เช่น การกำหนดเส้นทางที่เป็นมิตรต่อสิ่งแวดล้อมหรือเส้นทางที่สั้นที่สุด
วิธีทำงานของโทเค็นเส้นทาง
คุณสามารถใช้ Routes API, Routes Preferred API หรือ Route Optimization API เพื่อวางแผนเส้นทางโดยใช้วัตถุประสงค์ของเส้นทาง คุณสามารถส่งโทเค็นเส้นทางที่ส่งคืนจาก API เหล่านี้ไปยัง Navigation SDK เพื่อแนะนำวิธีกำหนดเส้นทางของยานพาหนะ
สิ่งที่จะเกิดขึ้นเมื่อคุณขอและใช้โทเค็นเส้นทาง
Routes API, Routes Preferred API หรือ Route Optimization API จะส่งคืนโทเค็นเส้นทางที่เข้ารหัสซึ่งมีเส้นประกอบเส้นทางและวัตถุประสงค์ของเส้นทาง
คุณส่งโทเค็นเส้นทางไปยัง Navigation SDK
Navigation SDK จะดึงเส้นทาง หรือหากเส้นทางไม่พร้อมใช้งานเนื่องจากสภาพแวดล้อมมีการเปลี่ยนแปลง ระบบจะดึงเส้นทางที่ตรงกันมากที่สุด
ขณะขับรถไปตามเส้นทาง หากสภาพการจราจรหรือสภาพถนนอื่นๆ เปลี่ยนไป หรือหากยานพาหนะเบี่ยงเบนจากเส้นทางที่วางแผนไว้ เส้นทางที่แก้ไขจะพยายามจับคู่กับเส้นทางที่ดีที่สุดอย่างต่อเนื่องโดยอิงตามวัตถุประสงค์ของเส้นทางในโทเค็น
กระบวนการนี้จะช่วยให้เส้นทางจริงใกล้เคียงกับเส้นทางที่วางแผนไว้มากที่สุด
เหตุผลที่อาจไม่ได้ขับไปตามเส้นทางที่วางแผนไว้ทุกประการ
โปรดพิจารณาว่าเส้นทางที่วางแผนไว้และวัตถุประสงค์ของเส้นทางเป็นเพียงแนวทางที่ควรปฏิบัติตามเท่านั้น ไม่ใช่ข้อกำหนด คุณอาจเห็นความแตกต่างระหว่างเส้นทางที่วางแผนไว้กับเส้นทางที่การนำทางด้วยเสียงแนะนำเนื่องจากสภาพถนน ตำแหน่งเริ่มต้น หรือพารามิเตอร์อื่นๆ ที่เปลี่ยนแปลงไปนับตั้งแต่ที่คุณสร้างเส้นทางที่วางแผนไว้ ความแตกต่างนี้อาจทำให้เป้าหมายที่วางแผนไว้ไม่ตรงกับเป้าหมายจริงในด้านระยะทางและเวลาถึงโดยประมาณ รวมถึงคุณภาพการเดินทางที่สำคัญอื่นๆ
วางแผนเส้นทางโดยใช้โทเค็นเส้นทาง
คุณสามารถวางแผนเส้นทางได้โดยสร้างโทเค็นเส้นทางแล้วส่งไปยัง Navigation SDK ตามที่อธิบายไว้ในขั้นตอนต่อไปนี้
ขั้นตอนที่ 1: สร้างโทเค็นเส้นทางโดยใช้ Routes API, Routes Preferred API หรือ Route Optimization API
ขอโทเค็นเส้นทาง โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
Routes API:
computeRoutes. ดูข้อมูลเพิ่มเติม เกี่ยวกับการขอโทเค็นเส้นทางใน Routes API ได้ที่ คำนวณเส้นทาง และ ขอโทเค็น เส้นทางRoutes Preferred API:
computeCustomRoutesดูข้อมูลเพิ่มเติมเกี่ยวกับการขอโทเค็นเส้นทางใน Routes Preferred API ได้ที่ วางแผน เส้นทางRoute Optimization API:
optimizeToursหรือbatchOptimizeTours. ดูข้อมูลเพิ่มเติมเกี่ยวกับการขอโทเค็นเส้นทางใน Route Optimization API ได้ที่เปลี่ยนเส้นประกอบและโทเค็นเส้นทาง
ตั้งค่าคำขอ Routes API หรือ Routes Preferred API ให้เป็นไปตามข้อกำหนดสำหรับการใช้โทเค็นเส้นทาง ดังนี้
- ตั้งค่า
travel_modeเป็นDRIVEหรือTWO_WHEELER - ตั้งค่า
routing_preferenceเป็นTRAFFIC_AWAREหรือTRAFFIC_AWARE_OPTIMAL - อย่าใช้จุดแวะพัก
Via
- ตั้งค่า
ขั้นตอนที่ 2: ส่งโทเค็นเส้นทางไปยัง Navigation SDK
จัดเก็บโทเค็นเส้นทาง: ใน Navigation 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) .setTravelMode(TravelMode.DRIVING) .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(TravelMode.DRIVING)
.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 และเส้นทางที่วางแผนไว้ในโทเค็นเส้นทางทำงานร่วมกัน
ลบล้าง ปลายทางที่ตั้งไว้ก่อนหน้านี้
ใช้ ตำแหน่งเริ่มต้นของยานพาหนะ
ปรับ สภาพถนนและสภาพการจราจร ดู เหตุผลที่อาจไม่ได้ขับไปตามเส้นทางที่วางแผนไว้ทุกประการ
ไม่สนใจ ตัวเลือกที่เกี่ยวข้องกับการกำหนดเส้นทางต่อไปนี้เนื่องจากไม่จำเป็น
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction
ทำตาม ตัวเลือกต่อไปนี้
ตัวเลือกที่เกี่ยวข้องกับจุดแวะพัก เช่น การกำหนดข้างถนนที่ต้องการ
วัตถุประสงค์ของเส้นทาง หาก Navigation SDK ต้องปรับเส้นทางที่ส่งคืน ระบบจะใช้วัตถุประสงค์ของเส้นทางที่คุณระบุไว้เมื่อขอโทเค็นเส้นทาง ด้วยเหตุนี้ คุณจึงควรใช้ตัวเลือกที่เกี่ยวข้องกับจุดแวะพักเดียวกันกับที่คุณระบุไว้ใน Routes API