ให้การนำทางแบบเลี้ยวต่อเลี้ยวสำหรับยานพาหนะขนาดใหญ่

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

สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้อธิบายวิธีใช้เส้นทางเฉพาะรถบรรทุก ที่สร้างโดย Routes API หรือ Route Optimization API และ ใช้เพื่อขับเคลื่อนเซสชันการนำทางแบบเลี้ยวต่อเลี้ยวด้วย Navigation SDK

สิ่งที่คุณจะได้เรียนรู้

คุณจะได้เรียนรู้วิธีทำสิ่งต่อไปนี้

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

ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น คุณต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้

การตั้งค่าโปรเจ็กต์

โปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud ต้องได้รับการจัดสรรสำหรับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ หากคุณ ใช้โปรเจ็กต์แยกต่างหากสำหรับ Routes API และ Navigation SDK ทั้ง 2 โปรเจ็กต์จะต้องได้รับการจัดสรรตามนั้น

สร้างโทเค็นเส้นทาง

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

ข้อกำหนดขั้นต่ำ

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

  • Android: 5.2.0 ขึ้นไป
  • iOS: 5.4.0 ขึ้นไป

นอกจากนี้ ข้อกำหนดทั้งหมดสำหรับการใช้ Navigation SDK ยังมีผลด้วย

ข้อจำกัด

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

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

แสดง UI เฉพาะรถบรรทุก

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

SDK มีข้อความแจ้งสำหรับข้อจำกัดต่อไปนี้

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

เวิร์กโฟลว์ของโทเค็นเส้นทาง

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

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

ในกรณีเหล่านี้ รวมถึงกรณีที่คนขับเบี่ยงเบนจากเส้นทางที่วางแผนไว้ การใช้โทเค็นเส้นทางจะช่วยให้มั่นใจได้ว่าเส้นทางที่คำนวณใหม่จะคำนึงถึงแอตทริบิวต์ของยานพาหนะตามที่กำหนดค่าไว้ในคำขอ Routes API เดิม

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

  1. แบ็กเอนด์ของคุณขอเส้นทางรถบรรทุกจาก Routes API
  2. Routes API จะแสดง routeToken
  3. แบ็กเอนด์จะส่งโทเค็นนี้ไปยังแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
  4. แอปบนอุปกรณ์เคลื่อนที่จะส่ง routeToken ไปยัง Navigation SDK เพื่อเริ่ม การเดินทาง
  5. Navigation SDK จะจัดการทุกด้านของประสบการณ์การนำทางแบบเลี้ยวต่อเลี้ยว รวมถึงการเปลี่ยนเส้นทางหากคนขับเบี่ยงเบนจากเส้นทางขณะที่ยังคงข้อจำกัดเดิมของยานพาหนะ

การติดตั้งใช้งาน: เริ่มการเดินทางสำหรับรถบรรทุกโดยเฉพาะ

หากต้องการเปิดเซสชันการนำทางด้วยเส้นทางรถบรรทุก ให้ส่งโทเค็นเส้นทาง ไปยัง Navigator

ขั้นตอนที่ 1: รับโทเค็นเส้นทาง

แอปพลิเคชันของคุณจะได้รับสตริง routeToken จากเซิร์ฟเวอร์แบ็กเอนด์

โค้ดต่อไปนี้คือตัวอย่างโทเค็น

CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g

ขั้นตอนที่ 2: ส่งโทเค็นไปยัง Navigator

ระบุ routeToken ให้กับ Navigator เมื่อคุณตั้งค่าจุดหมายการเดินทาง จากนั้น Navigation SDK จะใช้โทเค็นนี้ในการคำนวณเส้นทางทั้งหมดสำหรับการเดินทาง

โปรดทราบว่า Navigation SDK มีTravelModeการกำหนดค่าTravelMode.DRIVINGซึ่งต้องตั้งค่าเป็น ซึ่งแยกต่างหากจากการกำหนดค่า travelMode ใน Routes API ซึ่งต้องตั้งค่าเป็น TRUCK การกำหนดค่า Routes API travelMode จะได้รับการเข้ารหัสใน routeToken และส่งสัญญาณไปยัง Navigation SDK เพื่อ แสดงประสบการณ์และเส้นทางที่เฉพาะเจาะจงสำหรับรถบรรทุก

Android

ใช้ 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)

iOS

ส่งโทเค็นเส้นทางไปยัง 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: {...})

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