ในบางครั้ง คุณอาจต้องวางแผนเส้นทางที่แอปแสดงให้ผู้ใช้เห็น การใช้ กำหนดเส้นทางโทเค็นจาก Routes API Routes Preferred API หรือ Route Optimization API ช่วยคุณระบุ 2 สิ่งสำหรับเส้นทางที่วางแผนไว้
เส้นประกอบของเส้นทาง
วัตถุประสงค์ของเส้นทาง
ตัวอย่างวัตถุประสงค์การกำหนดเส้นทางที่คุณอาจมีมีดังนี้
ลดเวลานำส่ง: ธุรกิจส่งอาหารอาจต้องการลดเวลาในการนำส่งอาหาร
ลดเวลาในการเดินทางหรือการใช้เชื้อเพลิง: ธุรกิจโลจิสติกส์อาจ ต้องการปรับปรุงประสิทธิภาพของคนขับและลดต้นทุนการใช้เชื้อเพลิง
ลดเวลาในการถึงปลายทาง: การดำเนินการมอบหมายบริการอาจต้องการ ลดเวลาที่ใช้ในการดึงโอเปอเรเตอร์มาที่คำของาน
ลดต้นทุนและเพิ่มความปลอดภัย: ธุรกิจบริการร่วมเดินทางอาจต้องการค้นหาเส้นทางที่ประหยัดค่าใช้จ่ายสำหรับผู้ขับขี่และหลีกเลี่ยงบางพื้นที่เพื่อความปลอดภัย
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการวางแผนเส้นทางโดยใช้โทเค็นเส้นทาง โปรดดูส่งคำขอ เส้นทางโทเค็นใน Routes API และ Transion Polylines และ Route โทเค็นใน API การเพิ่มประสิทธิภาพเส้นทาง
เหตุผลที่ควรใช้โทเค็นเส้นทางสําหรับวัตถุประสงค์ของเส้นทาง
เมื่อใช้โทเค็นเส้นทางจาก Routes API Routes Preferred API หรือ Route Optimization API สามารถควบคุมเส้นทางที่ระบุได้มากขึ้น
วางแผนเส้นทางล่วงหน้าเพื่อให้ Navigation SDK ใช้เมื่อเป็นไปได้
เลือกเส้นทางที่ดีที่สุดสำหรับ Navigation SDK ที่จะใช้ หากคุณขอโทเค็นเส้นทางเมื่อสร้างเส้นทางใน Routes API คุณจะได้รับโทเค็นเส้นทางสำหรับเส้นทางที่สร้างขึ้นแต่ละเส้นทาง จากนั้นคุณสามารถเลือก ของเส้นทางที่คุณต้องการใช้เมื่อส่งผ่านไปยัง 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
เป็นDRIVING
หรือTWO_WHEELER
- ตั้งค่า
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) .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 และ เส้นทางในโทเค็นเส้นทางมีการโต้ตอบ:
ลบล้างปลายทางที่ตั้งค่าไว้ก่อนหน้านี้
ใช้ตำแหน่งสตาร์ทรถ
ปรับสภาพถนนและสภาพการจราจร โปรดดู เหตุใดระบบจึงอาจไม่ตามเส้นทางที่วางแผนไว้ทุกประการ
ละเว้นตัวเลือกที่เกี่ยวข้องกับการกำหนดเส้นทางต่อไปนี้เนื่องจากไม่จำเป็น
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
การติดตาม
ตัวเลือกที่เกี่ยวข้องกับจุดแวะพัก เช่น ค่ากำหนดด้านข้างถนน
วัตถุประสงค์ของเส้นทาง หาก Navigation SDK ต้องปรับเส้นทางที่แสดงผล จะใช้วัตถุประสงค์ของเส้นทางที่คุณระบุเมื่อขอโทเค็นเส้นทาง ด้วยเหตุนี้ คุณจึงควรใช้วิธีการเดียวกันนี้ ตัวเลือกที่เกี่ยวข้องกับจุดอ้างอิงที่คุณระบุใน Routes API