คู่มือนี้เหมาะสำหรับ: อ่านคู่มือนี้หากคุณเป็นนักพัฒนาแอปที่สร้างบริการสำหรับการวางแผนและดำเนินการเดินทางโดยใช้รถบรรทุกหรือยานพาหนะขนาดใหญ่อื่นๆ กรณีการใช้งานที่เกี่ยวข้อง ได้แก่ การคำนวณเวลาและระยะทางในการเดินทาง การคำนวณเวลาถึงโดยประมาณ หรือการสร้างเส้นทางที่จะใช้โดยแอปพลิเคชันการนำทาง
สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้ครอบคลุมวิธีใช้ Routes API กับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่เพื่อขอเส้นทาง ระยะทางในการเดินทาง เวลาในการเดินทางที่คาดการณ์ไว้ และเวลาถึงโดยประมาณที่คำนึงถึงแอตทริบิวต์เฉพาะของยานพาหนะขนาดใหญ่ เช่น รถบรรทุกเพื่อการพาณิชย์หรือรถโดยสาร
ดูข้อมูลเกี่ยวกับวิธีทำการคำนวณระดับกองยานพาหนะสำหรับยานพาหนะขนาดใหญ่ โดยใช้ Route Optimization API ได้ที่เอกสารประกอบการกำหนดเส้นทางสำหรับรถบรรทุกของ Route Optimization
สิ่งที่คุณจะได้เรียนรู้
คุณจะได้เรียนรู้วิธีทำสิ่งต่อไปนี้
- สร้างคำขอการกำหนดเส้นทางที่ถูกต้อง
- ระบุข้อมูลยานพาหนะสำหรับยานพาหนะในโลกจริงโดยใช้ขนาด น้ำหนัก และลักษณะอื่นๆ
- ตีความการตอบกลับ รวมถึงโทเค็นเส้นทางและแฟล็กความปลอดภัยในการเดินทาง
ข้อกำหนดเบื้องต้น
- คุณต้องสร้างโปรเจ็กต์ Google Cloud และเปิดใช้ Routes API
- โปรเจ็กต์ของคุณต้องมีการจัดสรรสำหรับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ มีให้บริการสำหรับลูกค้าบางกลุ่มเท่านั้น โปรดติดต่อเราเพื่อ ขอสิทธิ์เข้าถึง
ข้อจำกัด
ก่อนเริ่มต้น คุณต้องทราบข้อจำกัดและข้อกำหนดต่อไปนี้
- ความพร้อมให้บริการตามภูมิศาสตร์: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่พร้อมให้บริการใน สหรัฐอเมริกา 48 รัฐที่อยู่ติดกัน (พร้อมให้บริการโดยทั่วไป) และ ญี่ปุ่น (ทดลองใช้) โดยไม่พร้อมให้บริการในอะแลสกา ฮาวาย หรือดินแดนของสหรัฐฯ
- คำแนะนำและความปลอดภัยสำหรับผู้ขับขี่ ผู้ขับขี่ต้องไม่พึ่งพาเส้นทางที่ API นี้แสดงผลเพียงอย่างเดียวว่าปลอดภัยหรือถูกกฎหมาย ไม่มีการรับประกันว่าเส้นทางจะเหมาะสมกับยานพาหนะ และการขับตามเส้นทางอาจทำให้ผู้ขับขี่เผชิญกับอันตราย เช่น สะพานต่ำหรือถนนที่ห้ามยานพาหนะขนาดใหญ่สัญจร
- เส้นทางที่ได้จากการพยายามอย่างเต็มที่ ในบางกรณี API อาจไม่พบเส้นทางที่เป็นไปตามข้อจำกัดในการเดินทางอย่างครบถ้วน แต่จะแสดงผลเส้นทาง "ที่ได้จากการพยายามอย่างเต็มที่" ซึ่งอาจยังคงผ่านพื้นที่ที่ถูกจำกัด การตอบกลับของ Routes API จะทำเครื่องหมายเส้นทางเหล่านี้อย่างชัดเจนในช่อง
routeRestrictionsPartiallyIgnoredในกรณีเหล่านี้ ให้วางแผนเส้นทางอย่างรอบคอบ โดยใช้แหล่งข้อมูลอื่นๆ จะดีที่สุด อย่าใช้เส้นทางที่ทำเครื่องหมายเป็นแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียวสำหรับการวางแผนหรือการนำทาง - ฟีเจอร์ที่ไม่รองรับ: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ไม่รองรับ
สิ่งต่อไปนี้:
- ราคาค่าผ่านทางสำหรับรถบรรทุก
- ขีดจำกัดความเร็ว
- การกำหนดเส้นทางสำหรับวัสดุอันตรายที่มีกัมมันตรังสี
- ขีดจำกัดการใช้งาน: คำขอทั้งหมดอยู่ภายใต้ขีดจำกัดคำค้นหาต่อวินาที (QPS) มาตรฐาน
สร้างคำขอเส้นทางสำหรับรถบรรทุก
หากต้องการรับเส้นทางสำหรับรถบรรทุก ให้ส่งคำขอ HTTPS ไปยังปลายทางของ Routes API พร้อมพารามิเตอร์ที่เฉพาะเจาะจงซึ่งอธิบายยานพาหนะ แนวคิดในส่วนนี้ใช้ได้กับทั้งคำขอเส้นทางเดียวและคำขอเมทริกซ์เส้นทาง
ปลายทาง
คุณสามารถใช้ปลายทาง 2 รายการสำหรับการกำหนดเส้นทางสำหรับรถบรรทุก
computeRoutes: คำนวณเส้นทางเดียวระหว่างต้นทางหนึ่งแห่งกับปลายทางหนึ่งแห่งcomputeRouteMatrix: คำนวณระยะทางและระยะเวลาสำหรับเมทริกซ์ของต้นทางและปลายทาง แต่ไม่แสดงผลเส้นโพลีไลน์ของเส้นทาง
พารามิเตอร์คำขอหลัก
ในเนื้อหาคำขอ คุณต้องใส่พารามิเตอร์ต่อไปนี้เพื่อเปิดใช้การกำหนดเส้นทางสำหรับรถบรรทุก
travelMode: ตั้งค่านี้เป็นTRUCKroutingPreference: ตั้งค่านี้เป็นTRAFFIC_AWARE_OPTIMALrouteModifiers: ออบเจ็กต์นี้มีออบเจ็กต์vehicleInfoซึ่งคุณกำหนดแอตทริบิวต์ของยานพาหนะ ออบเจ็กต์vehicleInfoมีรายละเอียดอธิบายไว้ด้านล่าง
ระบุแอตทริบิวต์ของยานพาหนะ
หากต้องการส่งคำขอ คุณต้องระบุเนื้อหาคำขอที่มีออบเจ็กต์ vehicleInfo ซึ่งอธิบายยานพาหนะ ให้คิดว่าข้อมูลนี้เป็นข้อกำหนดที่ตรงกับรายละเอียดทางกายภาพของยานพาหนะในโลกจริง บริการต้องใช้รายละเอียดเหล่านี้เพื่อแสดงผลเส้นทางที่คำนึงถึงข้อจำกัดของถนนตามแอตทริบิวต์ของยานพาหนะ
การวัดยานพาหนะ
ระบุน้ำหนักของยานพาหนะเป็นกิโลกรัมและขนาดของยานพาหนะเป็นมิลลิเมตรตามที่ระบุโดยชื่อช่อง ตัวอย่างเช่น ความสูงทั้งหมดควรระบุเป็นมิลลิเมตร (totalHeightMm) เนื่องจากขนาดของรถบรรทุกมักแสดงเป็นฟุตหรือเมตร จึงอาจต้องมีการแปลงหน่วย
การแปลงจากหน่วยอิมพีเรียลเป็นหน่วยเมตริก
เมื่อแปลงจากหน่วยอิมพีเรียล ให้พิจารณาขนาดเฉพาะของยานพาหนะควบคู่ไปกับขีดจำกัดขนาดมาตรฐานของถนนและทางลอดเสมอ ซึ่งอาจมีความสำคัญเป็นพิเศษกับค่าเศษส่วน การปัดเศษค่าเศษส่วนขึ้นอาจทำให้การกำหนดเส้นทางสำหรับยานพาหนะมีความเข้มงวดมากเกินไป ทั้งนี้ขึ้นอยู่กับขนาดของยานพาหนะจริง
ตัวอย่างเช่น
- ความกว้าง: รถพ่วงจำนวนมากในสหรัฐอเมริกามีความกว้าง 8 ฟุต 6 นิ้ว ซึ่งแปลงเป็น 2,590.8 มม. การปัดเศษขึ้นเป็น 2,591 มม. จะบ่งบอกว่ายานพาหนะมีความกว้างมากกว่า 8 ฟุต 6 นิ้ว ซึ่งจะจัดประเภทเป็นยานพาหนะขนาดใหญ่บนถนนในสหรัฐอเมริกา จากนั้นจะส่งผลให้มีการคำนวณเส้นทางตามข้อจำกัดที่แตกต่างออกไปอย่างมีนัยสำคัญจากที่ตั้งใจไว้
- ความสูง: เส้นทางที่ลอดใต้สะพานสูง 11 ฟุตจะไม่เหมาะสำหรับรถบรรทุกกึ่งพ่วงทั่วไปที่มีความสูง 13.5 ฟุต อย่างไรก็ตาม รถบรรทุกขนาดเล็กที่มีความสูงประมาณ 10 ฟุตจะสามารถลอดทางลอดได้ ดังนั้น การระบุแอตทริบิวต์ของยานพาหนะอย่างถูกต้องจึงมีความสำคัญอย่างยิ่ง

ต่อไปนี้คือข้อมูลโค้ดที่แสดงออบเจ็กต์ vehicleInfo ตัวอย่าง
"vehicleInfo": {
"totalAxleCount": 5,
"totalHeightMm": 4114,
"totalLengthMm": 21945,
"totalWidthMm": 2590,
"totalWeightKg": 32658,
"trailerInfo": [{
"lengthMm": 16154
}
ช่องออบเจ็กต์ vehicleInfo
ตารางต่อไปนี้แสดงคำจำกัดความของยานพาหนะและน้ำหนักบรรทุกทั้งหมดที่คุณส่งได้พร้อมกับคำขอ
| ฟิลด์ | คำอธิบาย | หมายเหตุ / ค่า |
|---|---|---|
totalHeightMm
|
ความสูงสูงสุดของยานพาหนะ | หน่วยเป็นมิลลิเมตร ปัดเศษลง ดูรายละเอียดเพิ่มเติมเกี่ยวกับการปัดเศษได้ที่การแปลงจากหน่วยอิมพีเรียลเป็นหน่วยเมตริก |
totalWidthMm
|
ความกว้างสูงสุดของยานพาหนะ | หน่วยเป็นมิลลิเมตร ปัดเศษลง |
totalLengthMm
|
ความยาวรวมของยานพาหนะและรถพ่วง | หน่วยเป็นมิลลิเมตร ปัดเศษลง |
totalWeightKg
|
น้ำหนักรวมของยานพาหนะ (รวมรถพ่วงและน้ำหนักบรรทุก) | หน่วยเป็นกิโลกรัม ปัดเศษลง |
totalAxleCount
|
จำนวนเพลารวมของยานพาหนะและรถพ่วง | ค่าที่แน่นอน |
trailerInfo (ไม่บังคับ)
|
อาร์เรย์ของออบเจ็กต์ โดยมี 1 ออบเจ็กต์สำหรับรถพ่วงแต่ละคัน | ละเว้นสำหรับยานพาหนะที่ไม่มีรถพ่วง เช่น รถบรรทุกแบบตู้ |
hazardousGoodsTypes (ไม่บังคับ)
|
อาร์เรย์ที่ระบุวัสดุอันตรายใดๆ ที่บรรทุกอยู่ | EXPLOSIVES, GASES, FLAMMABLE, COMBUSTIBLE, ORGANIC, POISON, CORROSIVE, ASPIRATION_HAZARD, ENVIRONMENTAL_HAZARD, OTHER |
ใช้ฟิลด์มาสก์
เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ให้ใส่ส่วนหัว X-Goog-FieldMask ในคำขอเพื่อระบุฟิลด์ที่คุณต้องการในการตอบกลับอย่างชัดเจน ฟิลด์มาสก์ช่วยลดเวลาในการตอบสนองและช่วยให้คุณได้รับฟิลด์คำแนะนำที่สำคัญ คุณควรใส่ routes.travelAdvisory.routeRestrictionsPartiallyIgnored ในฟิลด์มาสก์เสมอ เนื่องจากฟิลด์นี้จะระบุว่าเส้นทางมีข้อจำกัดอย่างน้อย 1 ข้อที่ใช้กับยานพาหนะของคุณหรือไม่
ดูรายละเอียดเพิ่มเติมเกี่ยวกับฟิลด์มาสก์กับ Routes API ได้ที่ บทความ นี้
ค่าผ่านทาง
หากต้องการใช้เส้นทางที่ไม่เสียค่าผ่านทาง ให้ระบุ avoidTolls ในพร็อพเพอร์ตี้ routeModifiers ของคำขอ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแก้ไขเส้นทางได้ที่
ดู ระบุฟีเจอร์เส้นทางที่จะหลีกเลี่ยง
การระบุ avoidTolls ไม่ได้รับประกันว่าการตอบกลับจะมีเส้นทางที่ไม่เสียค่าผ่านทาง ในบางกรณี คุณต้องใช้ทางพิเศษเพื่อเดินทางระหว่างต้นทางและปลายทาง หากคุณใส่ routes.warnings ในฟิลด์มาสก์ของคำขอ Routes API ระบบจะใส่คำอธิบายประกอบเส้นทางที่มีถนนที่มีค่าผ่านทางภายในฟิลด์นี้
ลักษณะการทำงานอื่นๆ ของการกำหนดเส้นทาง
เมื่อตั้งค่า travelMode เป็น TRUCK API จะเพิ่มประสิทธิภาพเส้นทางโดยอัตโนมัติเพื่อให้ยานพาหนะขนาดใหญ่สามารถเคลื่อนที่ได้ เส้นทางที่สร้างขึ้นจะหลีกเลี่ยงการกลับรถและเลือกใช้ทางหลวงระหว่างรัฐและทางหลวงมากกว่าถนนขนาดเล็ก คุณไม่จำเป็นต้องตั้งค่าพารามิเตอร์หรือตัวแก้ไขเพิ่มเติมเพื่อเปิดใช้ลักษณะการทำงานเหล่านี้
คำนวณเส้นทางเดียวด้วย computeRoutes
ใช้ปลายทาง computeRoutes เพื่อคำนวณเส้นทางเฉพาะสำหรับรถบรรทุกระหว่างต้นทางหนึ่งแห่งกับปลายทางหนึ่งแห่ง
ตัวอย่างคำขอ computeRoutes
นี่คือคำขอ curl ที่สมบูรณ์สำหรับรถบรรทุกกึ่งพ่วงทั่วไป ตัวอย่างนี้มีปลายทาง ส่วนหัว และเนื้อหาคำขอ
curl --location 'https://routes.googleapis.com/directions/v2:computeRoutes' \
--header 'Content-Type: application/json' \
--header 'X-Goog-Api-Key: YOUR_API_KEY' \
--header 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeToken,routes.travelAdvisory.routeRestrictionsPartiallyIgnored' \
--data '{
"origin": {
"location": {
"latLng": {
"latitude": 40.883274,
"longitude": -74.704574
}
}
},
"destination": {
"location": {
"latLng": {
"latitude": 40.991920,
"longitude": -75.183371
}
}
},
"travelMode": "TRUCK",
"routingPreference": "TRAFFIC_AWARE_OPTIMAL",
"routeModifiers": {
"vehicleInfo": {
"totalAxleCount": 5,
"totalHeightMm": 4114,
"totalLengthMm": 21945,
"totalWidthMm": 2590,
"totalWeightKg": 32658,
"trailerInfo": [{
"lengthMm": 16154
}]
}
}
}'
ตัวอย่างการตอบกลับ computeRoutes
นี่คือตัวอย่างการตอบกลับสำหรับคำขอก่อนหน้าซึ่งแสดงไว้ด้านบน โปรดทราบว่าในออบเจ็กต์ travelAdvisory จะไม่มีแฟล็ก routeRestrictionsPartiallyIgnored ซึ่งบ่งบอกว่าเส้นทางไม่ได้ทำเครื่องหมาย และเชื่อว่าจะเป็นไปตามแอตทริบิวต์ของยานพาหนะอย่างครบถ้วน
{
"routes": [
{
"distanceMeters": 3426,
"duration": "312s",
"travelAdvisory": {},
"routeToken": "CogCCogBChA7b39q54cKGCys_VXaDADjEhgszp8YhZFw0xvzm7SygpvCeIvJ7V0r6XIaJZ6BxNkMa_8HhhqlAci7hYMXi6UCpPgDW-yoAf8gzgHiEYyJAnoiAQU6AQFCB27cD9UCwwdKCMX2Ij7RpxY_eAGqARdUNENZWllLS0tJRGZ2T01QMVptSjRBaxAEGmIKYBIWCAAQAxAGEBMQEhgCQgQaAggFSgIIASIbChdUNENZWmVTc0o0RGZ2T01QMVptSjRBa3ABKAQyJ3RydWNraW5nOjpzZW1pLXRyYWlsZXItdHJ1Y2staGVhdnktc29mdCIVAOzExFsGGGfjVIIY7GXjYbPyONS8EiQiInRydWNraW5nOjpzZW1pLXRyYWlsZXItdHJ1Y2staGVhdnk"
}
]
}
ตีความการตอบกลับ computeRoutes
คำขอที่สำเร็จไปยังปลายทาง computeRoutes จะแสดงผลออบเจ็กต์การตอบกลับ JSON ที่มีเส้นทางที่เป็นไปได้ตั้งแต่ 1 เส้นทางขึ้นไป
ฟิลด์การตอบกลับหลัก
- รูปทรงเรขาคณิตของเส้นทางที่เข้ารหัส:
routes.polylineซึ่งสามารถใช้เพื่อแสดงเส้นทางบนแผนที่ - ระยะเวลาการเดินทางโดยประมาณ:
routes.duration(เป็นวินาที) ระยะเวลาการเดินทางของการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ใช้โมเดลใหม่ที่ฝึกโดยใช้ความเร็วในการเดินทางที่สังเกตได้ของรถบรรทุกจริงบนเครือข่ายถนน นอกจากนี้ยังใช้เพื่อคำนวณเวลาถึงโดยประมาณได้ด้วยการเพิ่มระยะเวลาการเดินทางโดยประมาณลงในเวลาออกเดินทางที่คาดไว้ - ระยะทางรวมของเส้นทาง:
routes.distanceMeters(เป็นเมตร) - โทเค็นเส้นทาง:
routes.routeToken. นี่คือโทเค็นทึบแสงที่แสดงเส้นทางที่คำนวณได้อย่างแม่นยำ คุณส่งโทเค็นนี้ไปยัง Navigation SDK เพื่อให้แน่ใจว่าผู้ขับขี่จะเห็นเส้นทางเฉพาะสำหรับรถบรรทุกเส้นทางเดียวกัน ดูรายละเอียดได้ที่คู่มือ Navigation SDK สำหรับ Android หรือ iOS
ตรวจสอบแฟล็กความปลอดภัยของเส้นทาง
เมื่อได้รับการตอบกลับ สิ่งแรกที่คุณควรทำคือตรวจสอบแฟล็กความปลอดภัยของเส้นทาง หากเส้นทางที่ระบุมีข้อจำกัดอย่างน้อย 1 ข้อที่ทำให้เส้นทางไม่เหมาะกับยานพาหนะ คุณจะเห็นฟิลด์ travelAdvisory.routeRestrictionsPartiallyIgnored ตั้งค่าเป็น true
ฟิลด์นี้ทำหน้าที่เป็นแฟล็กเพื่อตอบคำถามว่า "เส้นทางนี้มีการทำเครื่องหมายว่าอาจมีปัญหาหรือไม่"
false(หรือละเว้นจากการตอบกลับ): เส้นทางไม่ได้ทำเครื่องหมาย ระบบ พบเส้นทางที่เชื่อว่าเป็นไปตาม พารามิเตอร์ที่คุณระบุในคำขอ อย่างครบถ้วนtrue: เส้นทางมีการทำเครื่องหมาย ระบบไม่พบเส้นทางที่เป็นไปตามข้อกำหนดอย่างครบถ้วนและได้แสดงผลเส้นทาง "ที่ได้จากการพยายามอย่างเต็มที่" ซึ่งอาจไม่ปลอดภัยหรือถูกกฎหมาย คุณต้องใช้เส้นทางนี้ด้วยความระมัดระวังอย่างยิ่ง
คำนวณเมทริกซ์ของเส้นทาง (computeRouteMatrix)
ใช้ปลายทาง computeRouteMatrix เพื่อเปรียบเทียบเวลาและระยะทางในการเดินทางระหว่างต้นทางและปลายทางหลายแห่งได้อย่างมีประสิทธิภาพ ตัวอย่างเช่น คุณอาจใช้ปลายทางนี้เพื่อค้นหารถบรรทุกที่อยู่ใกล้สถานที่รับสินค้าใหม่ที่สุด เมื่อระบุต้นทางของยานพาหนะที่ต้องการใช้เพื่อวัตถุประสงค์ของคุณแล้ว คุณอาจส่งคำขอ computeRoutes เพื่อรับรายละเอียดเส้นทางและโทเค็นเส้นทางสำหรับยานพาหนะที่เสนอ
หากต้องการใช้ computeRouteMatrix ให้ระบุ vehicleInfo ภายในออบเจ็กต์ origin แต่ละรายการแทนที่จะระบุที่รูทของคำขอ
ตัวอย่างคำขอ computeRouteMatrix
{
"origins": [
{
"waypoint": { "location": { "latLng": { "latitude": 32.77, "longitude": -96.85 }}},
"routeModifiers": { "vehicleInfo": { /* ...vehicle attributes... */ } }
},
{
"waypoint": { "location": { "latLng": { "latitude": 33.61, "longitude": -112.11 }}},
"routeModifiers": { "vehicleInfo": { /* ...vehicle attributes... */ } }
}
],
"destinations": [
{ "waypoint": { "location": { "latLng": { "latitude": 35.02, "longitude": -106.64 }}}},
{ "waypoint": { "location": { "latLng": { "latitude": 29.77, "longitude": -95.40 }}}}
],
"travelMode": "TRUCK",
"routingPreference": "TRAFFIC_AWARE_OPTIMAL"
}
ตัวอย่างการตอบกลับ computeRouteMatrix
การตอบกลับจะเป็นอาร์เรย์ ซึ่งแต่ละออบเจ็กต์จะมีระยะเวลาและ distanceMeters สำหรับคู่ต้นทาง-ปลายทาง 1 คู่
[
{
"originIndex": 0,
"destinationIndex": 1,
"status": {},
"distanceMeters": 392372,
"duration": "14037s",
"condition": "ROUTE_EXISTS"
},
{ ... }
]
ขั้นตอนถัดไป
- ให้การนำทางแบบเลี้ยวต่อเลี้ยว: ดูวิธีใช้
routeTokenใน Navigation SDK สำหรับ Android หรือ iOS - เพิ่มประสิทธิภาพระดับกองยานพาหนะ: ใช้ Route Optimization API กับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่
- เอกสารอ้างอิง API: ดูรายการฟิลด์และค่าที่เป็นไปได้ทั้งหมดได้ที่ เอกสารอ้างอิง Routes API