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