คู่มือนี้เหมาะสำหรับใคร: อ่านคู่มือนี้หากคุณเป็นนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ซึ่งมีหน้าที่สร้างประสบการณ์การนำทางแบบเลี้ยวต่อเลี้ยวสำหรับคนขับรถบรรทุก รถบัส หรือยานพาหนะขนาดใหญ่อื่นๆ ที่ใช้เพื่อการพาณิชย์
สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้อธิบายวิธีใช้เส้นทางเฉพาะรถบรรทุกที่สร้างโดย Routes API หรือ Route Optimization API เพื่อขับเคลื่อนเซสชันการนำทางแบบเลี้ยวต่อเลี้ยวด้วย Navigation SDK สำหรับ iOS
สิ่งที่คุณจะได้เรียนรู้
คุณจะได้เรียนรู้วิธีทำงานต่อไปนี้
- ใช้
routeTokenเพื่อเชื่อมต่อการวางแผนเส้นทางแบ็กเอนด์กับประสบการณ์การนำทางในแอป - กำหนดค่า Navigation SDK ให้ใช้เส้นทางรถบรรทุกที่วางแผนไว้ล่วงหน้า
- ทำความเข้าใจลักษณะที่ข้อจำกัดเฉพาะรถบรรทุกปรากฏต่อคนขับใน UI การนำทาง
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
1. ขอสิทธิ์เข้าถึงสำหรับโปรเจ็กต์ของคุณ
การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่พร้อมให้บริการแก่ลูกค้าบางกลุ่มเท่านั้น หากต้องการแสดงความสนใจและขอสิทธิ์เข้าถึงสำหรับโปรเจ็กต์ Google Cloud โปรดกรอกแบบฟอร์มติดต่อ ตัวแทนของ Google จะติดต่อกลับเพื่อแจ้งขั้นตอนถัดไป
เมื่อ Google ให้สิทธิ์เข้าถึงแล้ว ให้ตรวจสอบว่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ได้รับการจัดสรรสำหรับการกำหนดเส้นทางยานพาหนะขนาดใหญ่
หากองค์กรของคุณใช้โปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google แยกต่างหากสำหรับ 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.4.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: ส่งโทเค็นไปยัง Navigator
ส่ง routeToken และจุดอ้างอิงปลายทางไปยังเมธอด mapView.navigator
setDestinations
เมื่อกำหนดค่าจุดอ้างอิงและส่งโทเค็นเส้นทาง โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้
- ข้อกำหนดการจับคู่ปลายทาง: พิกัดปลายทางที่ส่งไปยัง
setDestinationsต้องตรงกับพิกัดปลายทางที่ใช้เมื่อสร้างrouteTokenการระบุปลายทางอื่นจะทำให้เกิดข้อผิดพลาด - การกำหนดเส้นทางข้างถนน: ยานพาหนะขนาดใหญ่ที่ใช้เพื่อการพาณิชย์ไม่สามารถกลับรถบนถนนแคบๆ ได้โดยง่าย ตั้งค่า
preferSameSideOfRoad = trueในจุดอ้างอิงเพื่อให้รถบรรทุกเข้าใกล้จุดหมายในด้านที่ถูกต้องของถนน - จุดแวะพักของยานพาหนะ: หากต้องการนำทางรถบรรทุกไปยังตำแหน่งที่เหมาะสมสำหรับการหยุดหรือขนถ่าย ให้ตั้งค่า
vehicleStopover = trueในจุดอ้างอิง - จุดนำทาง: หากปลายทางมีทางเข้าสำหรับขนส่งสินค้าหรือท่าโหลดสินค้าที่กำหนดไว้ ให้ระบุโดยใช้โทเค็นจุดนำทาง
ขั้นตอนที่ 3: จัดการสถานะเส้นทางและเริ่มคำแนะนำ
ประเมิน GMSRouteStatus ที่แสดงผลใน Callback setDestinations เมื่อสถานะเป็น.OK (GMSRouteStatusOK) ให้ตั้งค่าisGuidanceActive = true (guidanceActive = YES) เพื่อเริ่มคำแนะนำแบบเลี้ยวต่อเลี้ยวที่ใช้งานอยู่
ตัวอย่างโค้ด
ส่งโทเค็นเส้นทางไปยัง Navigation SDK โดยใช้เมธอด mapView.navigator
setDestinations โดยระบุจุดอ้างอิงปลายทางเดียวกันกับที่คุณใช้เมื่อสร้างโทเค็นเส้นทาง:
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
จอแสดงผลในรถยนต์
คุณสามารถแสดงเซสชันการนำทางสำหรับยานพาหนะขนาดใหญ่บนหน้าจอในแผงหน้าปัดได้โดยใช้การนำทางสำหรับ CarPlayขั้นตอนถัดไป
- แก้ไข UI การนำทาง: ปรับแต่งตัวควบคุม UI และองค์ประกอบภาพในตัว เช่น เข็มทิศ ปุ่มจัดให้อยู่กึ่งกลาง และมุมมองกล้อง
- ฟังเหตุการณ์การนำทาง: จัดการการอัปเดตการนำทางและเหตุการณ์ในวงจร เช่น ความคืบหน้าของเส้นทาง การเปลี่ยนแปลงเวลาถึงโดยประมาณ และการเปลี่ยนเส้นทาง