คู่มือนี้มีไว้สำหรับใคร: โปรดอ่านคู่มือนี้หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่สร้างบริการสำหรับการวางแผนการเดินทางและการดำเนินการโดยใช้รถบรรทุกหรือยานพาหนะขนาดใหญ่อื่นๆ กรณีการใช้งานที่เกี่ยวข้อง ได้แก่ การคำนวณเวลาและระยะทางการเดินทาง การคำนวณเวลาถึงโดยประมาณ หรือการสร้างเส้นทางที่จะใช้โดยแอปพลิเคชันการนำทาง
สิ่งที่คู่มือนี้ครอบคลุม: คู่มือนี้ครอบคลุมวิธีใช้ Routes API กับ การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่เพื่อขอเส้นทาง ระยะทางในการเดินทาง เวลาเดินทางที่คาดคะเน และเวลาถึงโดยประมาณที่คำนึงถึงแอตทริบิวต์เฉพาะของยานพาหนะขนาดใหญ่ เช่น รถบรรทุกเชิงพาณิชย์หรือรถโดยสาร
ดูข้อมูลเกี่ยวกับวิธีทำการคำนวณระดับกลุ่มยานพาหนะสำหรับยานพาหนะขนาดใหญ่ โดยใช้ Route Optimization API ได้ที่เอกสารประกอบการกำหนดเส้นทางสำหรับรถบรรทุกของ Route Optimization
สิ่งที่คุณจะได้เรียนรู้
คุณจะได้เรียนรู้วิธีทำสิ่งต่อไปนี้
- สร้างคำขอการกำหนดเส้นทางที่ถูกต้อง
- ระบุโปรไฟล์ยานพาหนะสำหรับยานพาหนะจริงโดยใช้ขนาด น้ำหนัก และลักษณะอื่นๆ
- ตีความคำตอบ รวมถึงโทเค็นเส้นทางและธงความปลอดภัยในการเดินทาง
ข้อกำหนดเบื้องต้น
- คุณต้องสร้างโปรเจ็กต์ Google Cloud และเปิดใช้ Routes API
- โปรเจ็กต์ของคุณต้องจัดสรรสำหรับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ โปรดติดต่อตัวแทนของ Google เพื่อดำเนินการตามขั้นตอนนี้ให้เสร็จสมบูรณ์
ข้อจำกัด
ก่อนที่จะเริ่มต้น คุณต้องทราบข้อจำกัดและข้อกำหนดต่อไปนี้
- ความพร้อมให้บริการทางภูมิศาสตร์: การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่พร้อมให้บริการในสหรัฐอเมริกา 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 (ไม่บังคับ)
|
อาร์เรย์ที่ระบุวัสดุที่เป็นอันตรายบนเครื่อง | วัตถุระเบิด ก๊าซ ไวไฟ ติดไฟได้ง่าย สารอินทรีย์ สารพิษ สารกัดกร่อน อันตรายจากการสำลัก อันตรายต่อสิ่งแวดล้อม อื่นๆ |
ใช้ฟิลด์มาสก์
เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ให้ใส่ส่วนหัว X-Goog-FieldMask ในคำขอเพื่อ
ระบุฟิลด์ที่คุณต้องการในการตอบกลับอย่างชัดเจน Field Mask ช่วยลด
เวลาในการตอบสนองและช่วยให้คุณได้รับฟิลด์คำแนะนำที่สำคัญ คุณควรระบุ routes.travelAdvisory.routeRestrictionsPartiallyIgnored ในฟิลด์
มาสก์เสมอเป็นอย่างน้อย เนื่องจากฟิลด์นี้จะระบุว่าเส้นทางมีข้อจำกัดอย่างน้อย 1 รายการที่
ใช้กับยานพาหนะของคุณหรือไม่
ดูรายละเอียดเพิ่มเติมเกี่ยวกับ FieldMasks ด้วย Routes API ได้ที่บทความนี้
ค่าผ่านทาง
หากต้องการเลือกเส้นทางที่ไม่มีค่าผ่านทาง ให้ระบุ avoidTolls ในพร็อพเพอร์ตี้
routeModifiers ของคำขอ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแก้ไขเส้นทางได้ที่ระบุฟีเจอร์เส้นทางที่จะหลีกเลี่ยง
การระบุ avoidTolls ไม่ได้เป็นการรับประกันว่าเส้นทางที่ไม่มีค่าใช้จ่ายจะอยู่ในคำตอบ ใน
บางกรณี คุณต้องใช้ทางพิเศษเพื่อเดินทางระหว่างต้นทางและ
ปลายทาง หากคุณใส่ routes.warnings ใน FieldMask ของคำขอ Routes API ระบบจะใส่คำอธิบายประกอบเส้นทางที่มีทางพิเศษตามนั้นในฟิลด์นี้
ตัวอย่างคำขอ curl แบบเต็ม
คำขอ 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
}]
}
}
}'
ตีความการตอบกลับของ Compute Routes
คำขอที่สำเร็จไปยัง Routes API จะแสดงออบเจ็กต์การตอบกลับ JSON ที่มีเส้นทางที่เป็นไปได้อย่างน้อย 1 เส้นทาง
ฟิลด์คำตอบที่สำคัญ
- เรขาคณิตของเส้นทางที่เข้ารหัส:
routes.polylineซึ่งใช้เพื่อแสดงเส้นทางบนแผนที่ได้ - ระยะเวลาการเดินทางโดยประมาณ:
routes.duration(เป็นวินาที) ระยะเวลาการเดินทางของการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ใช้โมเดลใหม่ที่ได้รับการฝึกจากความเร็วในการเดินทางที่สังเกตได้ของรถบรรทุกจริงบนเครือข่ายถนน นอกจากนี้ยังใช้ในการคำนวณเวลาถึงโดยประมาณได้ด้วยการ เพิ่มระยะเวลาการเดินทางโดยประมาณลงในเวลาออกเดินทางที่คาดไว้ - ระยะทางทั้งหมดของเส้นทาง:
routes.distanceMeters(หน่วยเป็นเมตร) - โทเค็นเส้นทาง:
routes.routeTokenนี่คือโทเค็นแบบทึบแสงที่ แสดงเส้นทางที่คำนวณแล้วอย่างแม่นยำ คุณส่งโทเค็นนี้ไปยัง Navigation SDK เพื่อให้แน่ใจว่าคนขับจะเห็นเส้นทางที่เฉพาะเจาะจงสำหรับรถบรรทุกเหมือนกัน ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีดำเนินการดังกล่าวได้ในคำแนะนำให้การนำทางแบบ เลี้ยวต่อเลี้ยว
ตรวจสอบว่าเส้นทางมีธงความปลอดภัยหรือไม่
เมื่อได้รับการตอบกลับ สิ่งแรกที่คุณควรทำคือตรวจสอบว่ามีธงความปลอดภัยของเส้นทางหรือไม่
หากเส้นทางที่ระบุมีข้อจำกัดอย่างน้อย 1 รายการที่ทำให้เส้นทางนั้น
ไม่เหมาะกับยานพาหนะ คุณจะเห็นฟิลด์
travelAdvisory.routeRestrictionsPartiallyIgnored ตั้งค่าเป็น true
ฟิลด์นี้ทำหน้าที่เป็นเครื่องหมายเพื่อตอบคำถามที่ว่า "เส้นทางนี้ถูกแจ้งว่ามี ปัญหาที่อาจเกิดขึ้นใช่ไหม"
false(หรือไม่มีในการตอบกลับ): ระบบไม่ได้แจ้งว่าเส้นทางไม่เหมาะสม ระบบพบเส้นทางที่เชื่อว่าเป็นไปตาม พารามิเตอร์ที่คุณระบุในคำขออย่างสมบูรณ์true: มีการแจ้งว่าเส้นทางไม่เหมาะสม ระบบไม่พบเส้นทางที่ เป็นไปตามข้อกำหนดทั้งหมด จึงแสดงเส้นทาง "พยายามอย่างเต็มที่" ซึ่งอาจไม่ปลอดภัย หรือถูกกฎหมาย โปรดใช้เส้นทางนี้ด้วยความระมัดระวังเป็นอย่างยิ่ง
ตัวอย่าง: การตอบกลับ computeRoutes
นี่คือตัวอย่างการตอบกลับสำหรับคำขอที่แสดงด้านบน โปรดทราบว่าในออบเจ็กต์
travelAdvisory จะไม่มีแฟล็ก routeRestrictionsPartiallyIgnored ซึ่งหมายความว่าเส้นทางไม่ได้ถูกแจ้งว่าไม่เหมาะสม และเชื่อว่าเป็นไปตามโปรไฟล์ของยานพาหนะอย่างสมบูรณ์
{
"routes": [
{
"distanceMeters": 3426,
"duration": "312s",
"travelAdvisory": {},
"routeToken": "CogCCogBChA7b39q54cKGCys_VXaDADjEhgszp8YhZFw0xvzm7SygpvCeIvJ7V0r6XIaJZ6BxNkMa_8HhhqlAci7hYMXi6UCpPgDW-yoAf8gzgHiEYyJAnoiAQU6AQFCB27cD9UCwwdKCMX2Ij7RpxY_eAGqARdUNENZWllLS0tJRGZ2T01QMVptSjRBaxAEGmIKYBIWCAAQAxAGEBMQEhgCQgQaAggFSgIIASIbChdUNENZWmVTc0o0RGZ2T01QMVptSjRBa3ABKAQyJ3RydWNraW5nOjpzZW1pLXRyYWlsZXItdHJ1Y2staGVhdnktc29mdCIVAOzExFsGGGfjVIIY7GXjYbPyONS8EiQiInRydWNraW5nOjpzZW1pLXRyYWlsZXItdHJ1Y2staGVhdnk"
}
]
}
รับเมทริกซ์เส้นทางรถบรรทุก
หากต้องการคำนวณระยะเวลาเดินทางสำหรับทริปที่อาจเกิดขึ้นหลายทริปพร้อมกัน ให้ใช้ ปลายทาง computeRouteMatrix สำหรับการวางแผนระดับสูงเพื่อเปรียบเทียบ ระยะเวลาเดินทางและระยะทางระหว่างต้นทางและปลายทางหลายแห่งได้อย่างมีประสิทธิภาพ เช่น
คุณอาจใช้เพื่อค้นหารถบรรทุกที่อยู่ใกล้สถานที่รับสินค้าใหม่มากที่สุด เมื่อระบุแหล่งที่มาของยานพาหนะที่ต้องการใช้เพื่อวัตถุประสงค์ของคุณแล้ว คุณอาจส่งcomputeRoutesคำขอเพื่อรับรายละเอียดเส้นทางและโทเค็นเส้นทาง
สำหรับยานพาหนะที่เสนอ
หากต้องการใช้ computeRouteMatrix คุณต้องระบุ vehicleInfo ภายในออบเจ็กต์ต้นทางแต่ละรายการ
ตัวอย่างคำขอ
{
"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"
}
ตัวอย่างการตอบกลับ
การตอบกลับคืออาร์เรย์ที่แต่ละออบเจ็กต์มีระยะเวลาและ distanceMeters สำหรับคู่ต้นทาง-ปลายทาง 1 คู่
[
{
"originIndex": 0,
"destinationIndex": 1,
"status": {},
"distanceMeters": 392372,
"duration": "14037s",
"condition": "ROUTE_EXISTS"
},
{ ... }
]
ขั้นตอนถัดไป
- ระบุเส้นทางแบบเลี้ยวต่อเลี้ยว: ดูวิธีใช้
routeTokenในระบุการนำทางแบบเลี้ยวต่อเลี้ยวพร้อมเส้นทางที่เหมาะสำหรับรถบรรทุก - เพิ่มประสิทธิภาพระดับกองยานพาหนะ: ใช้ Route Optimization API กับการกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่
- เอกสารอ้างอิง API: ดูรายการฟิลด์และค่าทั้งหมดที่เป็นไปได้ ใน เอกสารอ้างอิง Routes API