คู่มือนี้มีไว้สำหรับ: อ่านคู่มือนี้หากคุณเป็นนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ ที่รับผิดชอบในการสร้างประสบการณ์การนำทางในห้องโดยสารสำหรับผู้ขับรถบรรทุก หรือยานพาหนะขนาดใหญ่อื่นๆ
สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้อธิบายวิธีใช้เส้นทางเฉพาะรถบรรทุก ที่สร้างโดย 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 เดิม
โดยเวิร์กโฟลว์จะมีขั้นตอนดังนี้
- แบ็กเอนด์ของคุณขอเส้นทางรถบรรทุกจาก Routes API
- Routes API จะแสดง
routeToken - แบ็กเอนด์จะส่งโทเค็นนี้ไปยังแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
- แอปบนอุปกรณ์เคลื่อนที่จะส่ง
routeTokenไปยัง Navigation SDK เพื่อเริ่ม การเดินทาง - 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: {...})
ขั้นตอนถัดไป
- สำรวจ SDK: Navigation SDK สำหรับ Android | Navigation SDK สำหรับ iOS
- ปรับแต่ง UI: ดูวิธีปรับแต่ง UI ของ Navigation SDK