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

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

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

คำขอแบ็กเอนด์ต้องระบุ travelMode: TRUCK พร้อมกับแอตทริบิวต์ทางกายภาพของยานพาหนะ (ความสูง ความกว้าง ความยาว น้ำหนัก จำนวนเพลา และสินค้าอันตราย) API การกำหนดเส้นทางจะส่งคืน routeToken ในการตอบกลับ ซึ่งเซิร์ฟเวอร์แบ็กเอนด์จะส่งโทเค็นนี้ไปยังแอปบนอุปกรณ์เคลื่อนที่

3. มีคุณสมบัติตรงตามข้อกำหนดขั้นต่ำของ SDK และระบบ

แอปของคุณต้องใช้ Navigation SDK เวอร์ชันขั้นต่ำที่กำหนด 5.2.0 ขึ้นไป

นอกจากนี้ โปรเจ็กต์ของคุณต้องมีคุณสมบัติตรงตามข้อกำหนดมาตรฐานในการตั้งค่า Navigation SDK

ข้อจำกัดและหลักเกณฑ์การดำเนินงาน

โปรดทราบข้อจำกัดและหลักเกณฑ์การดำเนินงานต่อไปนี้ก่อนเริ่มต้น

  • ความพร้อมให้บริการตามตำแหน่งทางภูมิศาสตร์: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่พร้อมให้บริการใน สหรัฐอเมริกา 48 รัฐที่อยู่ติดกัน (พร้อมให้บริการโดยทั่วไป) และ ญี่ปุ่น (เวอร์ชันทดลอง) โดยไม่พร้อมให้บริการในอะแลสกา ฮาวาย หรือดินแดนของสหรัฐฯ
  • คำแนะนำและความปลอดภัยสำหรับผู้ขับ: ผู้ขับต้องไม่พึ่งพาเส้นทาง ที่ Navigation SDK ส่งคืนเพียงอย่างเดียวว่าปลอดภัยหรือถูกกฎหมาย เส้นทางอาจไม่เหมาะกับยานพาหนะในสภาพถนนบางอย่าง และการขับตามเส้นทางดังกล่าวอาจทำให้ผู้ขับต้องเผชิญกับอันตราย เช่น ระยะห่างจากพื้นถึงสิ่งกีดขวางต่ำหรือถนนที่มีการจำกัดน้ำหนัก ผู้ขับต้องคอยระมัดระวังและปฏิบัติตามป้ายจราจรและกฎระเบียบท้องถิ่นเสมอ
  • เส้นทางที่ได้ผลลัพธ์ดีที่สุด: เมื่อ API การกำหนดเส้นทางไม่พบเส้นทางที่เป็นไปตามข้อจำกัดของยานพาหนะอย่างครบถ้วน API จะส่งคืนเส้นทางที่ได้ผลลัพธ์ดีที่สุดซึ่งอาจยังคงผ่านส่วนที่จำกัด ตัวอย่างเช่น Routes API จะตั้งค่าแฟล็ก routeRestrictionsPartiallyIgnored ในการตอบกลับ เมื่อนำทางตามเส้นทางเหล่านี้ Navigation SDK จะแสดงคำอธิบายเส้นทางเพื่อไฮไลต์ข้อจำกัดที่เกี่ยวข้อง โปรดวางแผนเส้นทางอย่างรอบคอบในกรณีเหล่านี้ และอย่าใช้เส้นทางที่มีการตั้งค่าสถานะเป็นแหล่งข้อมูลที่เชื่อถือได้แหล่งเดียวสำหรับการวางแผนหรือการนำทาง
  • ฟีเจอร์ที่ไม่รองรับ: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ไม่รองรับ ฟีเจอร์ต่อไปนี้
    • ราคาค่าผ่านทางสำหรับรถบรรทุก
    • การจำกัดความเร็วเฉพาะสำหรับรถบรรทุกหรือยานพาหนะขนาดใหญ่
    • การกำหนดเส้นทางสำหรับวัตถุอันตรายที่เป็นกัมมันตรังสี
  • ขีดจำกัดการใช้งาน: คำขอที่ส่งไปยัง Navigation SDK เป็นไปตาม ขีดจำกัดการใช้งานและโควต้ามาตรฐาน ดูข้อมูลเพิ่มเติมได้ที่ การใช้งานและการเรียกเก็บเงิน

แสดง UI เฉพาะสำหรับรถบรรทุก (คำอธิบายเส้นทาง)

Navigation SDK จะแสดงคำเตือนด้วยภาพที่เรียกว่า คำอธิบายเส้นทาง บนแผนที่โดยอัตโนมัติเพื่อเตือนผู้ขับถึงข้อจำกัดสำหรับรถบรรทุกที่กำลังจะมาถึง คำอธิบายจะปรากฏขึ้นสำหรับข้อจำกัดที่เกิดขึ้นตามเส้นทางที่วางแผนไว้ แต่จะไม่แสดงบนถนนอื่นๆ ที่อยู่ใกล้เคียง

Navigation SDK มีคำอธิบายสำหรับข้อจำกัดต่อไปนี้

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

วิธีทำงานของโทเค็นเส้นทาง

routeToken คือสแนปช็อตที่เข้ารหัสของเส้นทางที่สร้างโดยแบ็กเอนด์การกำหนดเส้นทางของ Google โดยจะรวมรูปทรงเรขาคณิตของเส้นทางที่วางแผนไว้ รวมถึงขนาดทางกายภาพและโปรไฟล์ข้อจำกัดของยานพาหนะ

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

  1. ขอเส้นทาง: เซิร์ฟเวอร์แบ็กเอนด์ขอเส้นทางรถบรรทุกจาก Routes API (หรือ Route Optimization API)
  2. รับโทเค็น: 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: กำหนดค่า 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)

หน้าจอในรถยนต์

คุณสามารถฉายเซสชันการนำทางสำหรับยานพาหนะขนาดใหญ่ไปยังหน้าจอในแผงควบคุมโดยใช้ Navigation for Android Auto

ขั้นตอนถัดไป

  • แก้ไข UI การนำทาง: ปรับแต่งตัวควบคุม UI ในตัวและ องค์ประกอบภาพ เช่น เข็มทิศ ปุ่มจัดกึ่งกลาง และมุมมองกล้อง
  • ฟังเหตุการณ์การนำทาง: จัดการการอัปเดตการนำทางและ เหตุการณ์วงจรการทำงาน เช่น ความคืบหน้าของเส้นทาง การเปลี่ยนแปลงเวลาถึงโดยประมาณ และการกำหนดเส้นทางใหม่