บางครั้งคุณอาจต้องการวางแผนเส้นทางที่แอปจะแสดงให้ผู้ใช้ การใช้โทเค็นเส้นทางจาก 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