คู่มือนี้เหมาะสำหรับใคร: โปรดอ่านคู่มือนี้หากคุณเป็นนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ที่รับผิดชอบในการสร้างประสบการณ์การนำทางแบบเลี้ยวต่อเลี้ยวสำหรับผู้ขับขี่รถบรรทุก รถโดยสาร หรือยานพาหนะขนาดใหญ่อื่นๆ ที่ใช้เพื่อการพาณิชย์
สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้อธิบายวิธีใช้เส้นทางที่เฉพาะเจาะจงสำหรับรถบรรทุกซึ่งสร้างโดย Routes API หรือ Route Optimization API และใช้เส้นทางดังกล่าว เพื่อขับเคลื่อนเซสชันการนำทางแบบเลี้ยวต่อเลี้ยวด้วย Navigation SDK สำหรับ Android
สิ่งที่คุณจะได้เรียนรู้
คุณจะได้เรียนรู้วิธีทำงานต่อไปนี้
- ใช้
routeTokenเพื่อเชื่อมต่อการวางแผนเส้นทางแบ็กเอนด์กับ ประสบการณ์การนำทางในแอป - กำหนดค่า Navigation SDK ให้ใช้เส้นทางรถบรรทุกที่วางแผนไว้ล่วงหน้า
- ดูว่าข้อจำกัดเฉพาะรถบรรทุกปรากฏต่อผู้ขับขี่ใน UI การนำทางอย่างไร
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
1. ขอสิทธิ์เข้าถึงสำหรับโปรเจ็กต์
การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่พร้อมให้บริการแก่ลูกค้าบางกลุ่ม หากต้องการแสดงความสนใจและขอสิทธิ์เข้าถึงโปรเจ็กต์ Google Cloud ของคุณ โปรดกรอกแบบฟอร์มติดต่อ ตัวแทนของ Google จะติดต่อกลับเพื่อแจ้งขั้นตอนถัดไป
เมื่อ Google ให้สิทธิ์เข้าถึงแล้ว ให้ตรวจสอบว่าได้จัดสรรโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google สำหรับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่แล้ว
หากองค์กรของคุณใช้โปรเจ็กต์ Google Cloud แยกกัน สำหรับ API การกำหนดเส้นทางแบ็กเอนด์และ Navigation SDK สำหรับอุปกรณ์เคลื่อนที่ โปรดติดต่อ Google เพื่อจัดสรรแต่ละโปรเจ็กต์
2. ตั้งค่าการสร้างเส้นทางแบ็กเอนด์และรับโทเค็นเส้นทาง
ก่อนเริ่มการนำทางในอุปกรณ์ เซิร์ฟเวอร์แบ็กเอนด์ต้องสร้าง
เส้นทางรถบรรทุกและรับ routeToken โดยใช้ API อย่างใดอย่างหนึ่งต่อไปนี้
- Routes API: แนะนำให้ใช้ในการคำนวณเส้นทางรถบรรทุกคันเดียวระหว่างต้นทางและปลายทาง ดูวิธีการตั้งค่าได้ที่สร้างเส้นทางและเวลาถึงโดยประมาณสำหรับยานพาหนะขนาดใหญ่
- Route Optimization API: ขอแนะนำให้ใช้เพื่อเพิ่มประสิทธิภาพเส้นทางแบบหลายจุดจอด ในกลุ่มยานพาหนะ ดูข้อมูลเพิ่มเติมได้ที่คู่มือการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ของ Route Optimization API
คำขอแบ็กเอนด์ต้องระบุ travelMode: TRUCK พร้อมกับแอตทริบิวต์ทางกายภาพของยานพาหนะ (ความสูง ความกว้าง ความยาว น้ำหนัก จำนวนเพลา และสินค้าอันตราย) Routing API จะแสดง routeToken ในการตอบกลับ ซึ่งเซิร์ฟเวอร์แบ็กเอนด์จะส่งไปยังแอปบนอุปกรณ์เคลื่อนที่
3. มีคุณสมบัติตรงตามข้อกำหนดขั้นต่ำของ SDK และระบบ
แอปของคุณต้องใช้ Navigation SDK เวอร์ชันขั้นต่ำที่กำหนด 5.2.0 ขึ้นไปนอกจากนี้ โปรเจ็กต์ของคุณต้องเป็นไปตามข้อกำหนดในการตั้งค่า Navigation SDK มาตรฐานด้วย
ข้อจำกัดและหลักเกณฑ์การปฏิบัติงาน
โปรดทราบข้อจำกัดและหลักเกณฑ์การปฏิบัติงานต่อไปนี้ก่อนเริ่มต้น
- ความพร้อมให้บริการตามภูมิศาสตร์: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่พร้อมให้บริการในสหรัฐอเมริกา 48 รัฐที่อยู่ติดกัน (พร้อมให้บริการแก่ผู้ใช้ทั่วไป) และญี่ปุ่น (เวอร์ชันทดลอง) ไม่มีบริการจัดส่งในอะแลสกา ฮาวาย หรือดินแดนของสหรัฐฯ
- คำแนะนำและความปลอดภัยสำหรับผู้ขับ: ผู้ขับต้องไม่พึ่งพาเส้นทางที่ Navigation SDK แสดงเพียงอย่างเดียวเพื่อความปลอดภัยหรือความถูกต้องตามกฎหมาย เส้นทางอาจไม่เหมาะกับยานพาหนะในสภาพถนนบางประเภท และการขับตามเส้นทางอาจทำให้ผู้ขับขี่เสี่ยงต่ออันตราย เช่น ถนนที่มีความสูงต่ำหรือจำกัดน้ำหนัก ผู้ขับขี่ต้องตื่นตัวอยู่เสมอและปฏิบัติตามป้ายจราจรและกฎระเบียบในท้องถิ่น
- เส้นทางที่พยายามอย่างเต็มที่: เมื่อ Routing API ไม่พบเส้นทางที่
เป็นไปตามข้อจำกัดของยานพาหนะอย่างสมบูรณ์ ระบบจะแสดงเส้นทาง "ที่พยายามอย่างเต็มที่" ซึ่งอาจยังคง
ผ่านส่วนที่ถูกจำกัด เช่น Routes API จะตั้งค่า
routeRestrictionsPartiallyIgnoredในคำตอบ เมื่อ นําทางในเส้นทางเหล่านี้ Navigation SDK จะแสดงข้อความไฮไลต์เส้นทาง เพื่อเน้นข้อจํากัดที่เกี่ยวข้อง วางแผนเส้นทางอย่างรอบคอบในกรณีเหล่านี้ และอย่าใช้เส้นทางที่ถูกแจ้งว่าเป็นแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียวสำหรับการวางแผนหรือ การนำทาง - ฟีเจอร์ที่ไม่รองรับ: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ไม่รองรับฟีเจอร์ต่อไปนี้
- การกำหนดราคาค่าผ่านทางสำหรับรถบรรทุก
- การจำกัดความเร็วสำหรับรถบรรทุกหรือยานพาหนะหนักโดยเฉพาะ
- การกำหนดเส้นทางสำหรับวัสดุกัมมันตรังสีที่เป็นอันตราย
- ขีดจำกัดการใช้งาน: คำขอที่ส่งไปยัง Navigation SDK จะเป็นไปตาม ขีดจำกัดการใช้งานและโควต้ามาตรฐาน ดูข้อมูลเพิ่มเติมได้ที่การใช้งานและการเรียกเก็บเงิน
แสดง UI เฉพาะรถบรรทุก (ข้อความไฮไลต์เส้นทาง)
Navigation SDK จะแสดงคำเตือนด้วยภาพโดยอัตโนมัติ ซึ่งเรียกว่าข้อความแจ้งเส้นทางบนแผนที่เพื่อแจ้งเตือนผู้ขับเกี่ยวกับข้อจำกัดสำหรับรถบรรทุกที่กำลังจะมีขึ้น ข้อความไฮไลต์จะปรากฏสำหรับข้อจำกัดที่เกิดขึ้นตามเส้นทางที่วางแผนไว้ แต่จะไม่แสดงบนถนนอื่นๆ ที่อยู่ใกล้เคียง
Navigation SDK มีข้อความแจ้งสำหรับข้อจำกัดต่อไปนี้
| ข้อจำกัด | ไอคอนและข้อความไฮไลต์ | เงื่อนไขในการแสดง |
|---|---|---|
| ส่วนสูง |
สีเหลือง = คำเตือน ยานพาหนะของคุณมีความสูงใกล้กับความสูงสูงสุดที่อนุญาต
สีแดง = ยานพาหนะของคุณมีความสูงสูงกว่าความสูงสูงสุดที่อนุญาต |
คำอธิบายประกอบสีเหลืองจะปรากฏขึ้นเมื่อความสูงของยานพาหนะใกล้เคียงกับข้อจำกัด
ข้อความเสริมสีแดงจะปรากฏขึ้นหากเส้นทางไม่เป็นไปตามข้อกำหนดและละเมิดการจำกัดความสูง
|
| น้ำหนัก |
|
ข้อความเสริมสีแดงจะปรากฏขึ้นเมื่อน้ำหนักของยานพาหนะ
เกินขีดจำกัดของถนน
|
| ห้ามรถบรรทุก |
|
ข้อความเสริมสีแดงจะปรากฏขึ้นเมื่อเดินทางในส่วนของถนน
ที่มีข้อจำกัดสำหรับรถบรรทุกเชิงพาณิชย์
|
| สินค้าอันตราย |
|
ข้อความเสริมสีแดงจะปรากฏขึ้นเมื่อมีการห้ามไม่ให้ยานพาหนะบรรทุกวัตถุอันตรายในส่วนของถนน
|
วิธีการทำงานของโทเค็นเส้นทาง
routeTokenคือสแนปชอตที่เข้ารหัสของเส้นทางที่สร้างโดยแบ็กเอนด์การกำหนดเส้นทางของ Google
ซึ่งจะรวมเรขาคณิตของเส้นทางที่วางแผนไว้ รวมถึงขนาดทางกายภาพและโปรไฟล์ข้อจำกัดของยานพาหนะ
เวิร์กโฟลว์มีขั้นตอนดังนี้
- ขอเส้นทาง: เซิร์ฟเวอร์แบ็กเอนด์ของคุณขอเส้นทางรถบรรทุกจาก Routes API (หรือ Route Optimization API)
- รับโทเค็น: Routing API จะคำนวณเส้นทางที่เป็นไปตามข้อกำหนดและ
ส่งคืน
routeTokenไปยังเซิร์ฟเวอร์แบ็กเอนด์ - ส่งต่อโทเค็น: เซิร์ฟเวอร์แบ็กเอนด์จะส่งพิกัด
routeTokenและ ปลายทางไปยังแอปบนอุปกรณ์เคลื่อนที่ - ส่งไปยัง SDK: แอปบนอุปกรณ์เคลื่อนที่จะส่ง
routeTokenไปยัง Navigation SDK - คำแนะนำในการเริ่มต้นใช้งาน: Navigation SDK จัดการทุกด้านของ ประสบการณ์การนำทางแบบเลี้ยวต่อเลี้ยว รวมถึงการแสดงข้อความเส้นทางและการจัดการ การเปลี่ยนเส้นทางแบบไดนามิกตามข้อจำกัดของยานพาหนะ
การคำนวณใหม่และการเปลี่ยนเส้นทางแบบไดนามิก
ในระหว่างการนำทางที่ใช้งานอยู่ สภาพการจราจร การปิดถนน หรือการเลี้ยวผิด อาจทำให้รถเบี่ยงออกจากเส้นทางที่วางแผนไว้
เมื่อมีการเปลี่ยนเส้นทาง
- Navigation SDK จะคำนวณเส้นทางไปยัง จุดหมายใหม่โดยอัตโนมัติ
- SDK จะเก็บแอตทริบิวต์และมิติข้อมูลของยานพาหนะที่เข้ารหัสไว้ใน
routeTokenเดิม - เส้นทางที่คำนวณใหม่จะหลีกเลี่ยงพื้นที่ที่มีความสูงต่ำ สะพานที่มีการจำกัดน้ำหนัก และถนนที่ห้ามรถบรรทุกเชิงพาณิชย์
การติดตั้งใช้งาน: เริ่มการเดินทางสำหรับรถบรรทุกโดยเฉพาะ
ทำตามขั้นตอนต่อไปนี้เพื่อเริ่มต้นและเริ่มการนำทางแบบเลี้ยวต่อเลี้ยวด้วยโทเค็นเส้นทางสำหรับยานพาหนะขนาดใหญ่
ขั้นตอนที่ 1: ขอโทเค็นเส้นทางจากแบ็กเอนด์
แอปบนอุปกรณ์เคลื่อนที่จะได้รับสตริง routeToken พร้อมกับ
พิกัดปลายทางจากเซิร์ฟเวอร์แบ็กเอนด์ ดูรายละเอียดเกี่ยวกับการสร้างโทเค็นนี้ในเซิร์ฟเวอร์ได้ที่สร้างเส้นทางและเวลาถึงสำหรับยานพาหนะขนาดใหญ่
ในเอกสารประกอบของ Routes API
โค้ดต่อไปนี้เป็นตัวอย่างโทเค็นเส้นทาง
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
ขั้นตอนที่ 2: กำหนดค่า CustomRoutesOptions
ส่งโทเค็นเส้นทางไปยังอินสแตนซ์ CustomRoutesOptions โดยใช้
CustomRoutesOptions.builder ดังนี้
- ส่งโทเค็นโดยใช้
setRouteToken(routeToken) - ตั้งค่าโหมดการเดินทางโดยใช้
setTravelMode(CustomRoutesOptions.TravelMode.DRIVING)
ขั้นตอนที่ 3: กำหนดจุดอ้างอิงและตั้งค่าปลายทาง
ส่งผ่านจุดอ้างอิงของจุดหมายและ CustomRoutesOptions ไปยัง navigator.setDestinations
เมื่อกำหนดค่าจุดแวะพักและส่งตัวเลือกเส้นทางที่กำหนดเอง โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้
- ข้อกำหนดในการจับคู่ปลายทาง: พิกัดปลายทางที่ส่งไปยัง
setDestinationsต้องตรงกับพิกัดปลายทางที่ใช้เมื่อ สร้างrouteTokenการระบุปลายทางอื่นจะทำให้เกิด ข้อผิดพลาด - การกำหนดเส้นทางริมถนน: ยานพาหนะขนาดใหญ่ที่ใช้เพื่อการพาณิชย์เลี้ยวกลับรถบนถนนแคบๆ ได้ยาก หากต้องการให้รถบรรทุกเข้าใกล้จุดหมาย
ที่ด้านที่ถูกต้องของถนน ให้เรียกใช้
setPreferSameSideOfRoad(true)ใน จุดอ้างอิง - จุดพักรถ: หากต้องการนำทางรถบรรทุกไปยังตำแหน่งที่เหมาะสมสำหรับ
หยุดหรือขนถ่าย ให้เรียกใช้
setVehicleStopover(true)ในจุดอ้างอิง - จุดนำทาง: หากปลายทางมีทางเข้าสำหรับขนส่งสินค้าหรือท่าเทียบเรือที่กำหนด ให้ระบุโดยใช้โทเค็นจุดนำทาง
ขั้นตอนที่ 4: จัดการสถานะเส้นทางและคำแนะนำในการเริ่มต้น
ลงทะเบียน OnResultListener ใน
ListenableResultFuture<Navigator.RouteStatus> เมื่อสถานะเส้นทางเป็น OK,
ให้โทรหา navigator.startGuidance เพื่อเริ่มการนำทางแบบเลี้ยวต่อเลี้ยวที่ใช้งานอยู่
ตัวอย่างโค้ด
ใช้ CustomRoutesOptions.builder เพื่อตั้งค่าโทเค็น แล้วส่งไปยัง
navigator.setDestinations
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
จอแสดงผลในรถ
คุณสามารถฉายเซสชันการนำทางสำหรับยานพาหนะขนาดใหญ่ไปยังหน้าจอในแดชบอร์ดได้โดยใช้การนำทางสำหรับ Android Autoขั้นตอนถัดไป
- แก้ไข UI การนำทาง: ปรับแต่งตัวควบคุม UI ในตัวและ องค์ประกอบภาพ เช่น เข็มทิศ ปุ่มจัดกึ่งกลาง และ มุมมองกล้อง
- ฟังเหตุการณ์การนำทาง: จัดการการอัปเดตการนำทางและ เหตุการณ์วงจร เช่น ความคืบหน้าของเส้นทาง การเปลี่ยนแปลงเวลาถึงโดยประมาณ และการเปลี่ยนเส้นทาง