บางครั้งคุณอาจต้องการวางแผนเส้นทางที่แอปจะแสดงให้ผู้ใช้ การใช้โทเค็นเส้นทางจาก 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 ให้ตั้งค่าสตริง เพื่อจัดเก็บโทเค็นเส้นทาง เช่น
let routeToken = "route token returned by Routes API"ตัวอย่างโทเค็นเส้นทางที่ส่งกลับ
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }ส่งโทเค็นเส้นทาง ไปยัง Navigation SDK โดยใช้วิธี
mapView.navigator setDestinationsซึ่งระบุจุดแวะพักปลายทางเดียวกันกับที่คุณใช้เมื่อสร้างโทเค็นเส้นทางmapView.navigator?.continueToNextDestination([waypoint1, waypoint2], routeToken: routeToken, callback: {...})เมธอด
Navigator.continueToNextDestinationจะส่งกลับสถานะของคำขอ หากพบเส้นทางจากตำแหน่งของผู้ใช้ไปยังปลายทางที่ระบุ ระบบจะส่งกลับRouteStatus.OK
สถานการณ์ที่มีหลายจุดแวะพัก
คุณกำหนดค่าจุดแวะพักได้สูงสุด 25 จุด
เมธอด setDestinations ไม่รองรับการเดินทางที่มีหลายจุดแวะพัก ใช้ continueToNextDestination() เพื่อเลื่อนจุดอ้างอิงไปยังช่วงถัดไปของเส้นทาง
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดึงข้อมูลเส้นทางที่วางแผนไว้
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";
[mapView.navigator continueToNextDestination:@[waypoint1, waypoint2]
routeToken:routeToken
callback:^(GMSRouteStatus routeStatus){...}];
วิธีที่โทเค็นเส้นทางและ Navigation SDK ทำงานร่วมกัน
วิธีที่เส้นทางที่สร้างโดย Navigation SDK และเส้นทางที่วางแผนไว้ในโทเค็นเส้นทางทำงานร่วมกัน
ลบล้าง ปลายทางที่ตั้งไว้ก่อนหน้านี้
ใช้ ตำแหน่งเริ่มต้นของยานพาหนะ
ปรับ สภาพถนนและสภาพการจราจร ดู เหตุผลที่อาจไม่เป็นไปตามเส้นทางที่วางแผนไว้ทุกประการ
ละเว้น ตัวเลือกที่เกี่ยวข้องกับการกำหนดเส้นทางต่อไปนี้เนื่องจากไม่จำเป็น
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction
ทำตาม ตัวเลือกต่อไปนี้
ตัวเลือกที่เกี่ยวข้องกับจุดแวะพัก เช่น ตัวเลือกข้างถนน
วัตถุประสงค์ของเส้นทาง หาก Navigation SDK ต้องปรับเส้นทางที่ส่งกลับ ระบบจะใช้วัตถุประสงค์ของเส้นทางที่คุณระบุไว้เมื่อขอโทเค็นเส้นทาง ด้วยเหตุนี้ คุณจึงควรใช้ตัวเลือกที่เกี่ยวข้องกับจุดแวะพักเดียวกันกับที่คุณระบุไว้ใน Routes API