นำทางเส้นทางสำหรับยานพาหนะขนาดใหญ่

คู่มือนี้เหมาะสำหรับใคร: โปรดอ่านคู่มือนี้หากคุณเป็นนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ที่รับผิดชอบในการสร้างประสบการณ์การนำทางแบบเลี้ยวต่อเลี้ยวสำหรับผู้ขับขี่รถบรรทุก รถโดยสาร หรือยานพาหนะขนาดใหญ่อื่นๆ ที่ใช้เพื่อการพาณิชย์

สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้อธิบายวิธีใช้เส้นทางที่เฉพาะเจาะจงสำหรับรถบรรทุกซึ่งสร้างโดย 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 อย่างใดอย่างหนึ่งต่อไปนี้

คำขอแบ็กเอนด์ต้องระบุ 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 ซึ่งจะรวมเรขาคณิตของเส้นทางที่วางแผนไว้ รวมถึงขนาดทางกายภาพและโปรไฟล์ข้อจำกัดของยานพาหนะ

เวิร์กโฟลว์มีขั้นตอนดังนี้

  1. ขอเส้นทาง: เซิร์ฟเวอร์แบ็กเอนด์ของคุณขอเส้นทางรถบรรทุกจาก Routes API (หรือ Route Optimization API)
  2. รับโทเค็น: Routing API จะคำนวณเส้นทางที่เป็นไปตามข้อกำหนดและ ส่งคืน routeToken ไปยังเซิร์ฟเวอร์แบ็กเอนด์
  3. ส่งต่อโทเค็น: เซิร์ฟเวอร์แบ็กเอนด์จะส่งพิกัด routeToken และ ปลายทางไปยังแอปบนอุปกรณ์เคลื่อนที่
  4. ส่งไปยัง SDK: แอปบนอุปกรณ์เคลื่อนที่จะส่ง routeToken ไปยัง Navigation SDK
  5. คำแนะนำในการเริ่มต้นใช้งาน: 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 ที่แสดงใน setDestinations Callback เมื่อสถานะเป็น .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 ในตัวและ องค์ประกอบภาพ เช่น เข็มทิศ ปุ่มจัดกึ่งกลาง และ มุมมองกล้อง
  • ฟังเหตุการณ์การนำทาง: จัดการการอัปเดตการนำทางและ เหตุการณ์วงจร เช่น ความคืบหน้าของเส้นทาง การเปลี่ยนแปลงเวลาถึงโดยประมาณ และการเปลี่ยนเส้นทาง