Roads API จะแสดงผลขีดจำกัดความเร็วที่ระบุไว้สำหรับส่วนของถนนหนึ่งๆ ในกรณีที่มีการจำกัดความเร็วของถนนแบบไม่แน่นอน ระบบจะแสดงการจำกัดความเร็วเริ่มต้นของถนนนั้น
ไม่สามารถรับประกันความถูกต้องของข้อมูลขีดจำกัดความเร็วที่ Roads API แสดง ข้อมูลขีดจำกัดความเร็วที่ระบุไม่ใช่แบบเรียลไทม์ และอาจเป็นเพียงค่าประมาณ ไม่ถูกต้อง ไม่สมบูรณ์ และ/หรือล้าสมัย ดูรายละเอียดความครอบคลุมเพื่อดูภูมิภาคที่มีข้อมูลการจำกัดความเร็ว
คำขอ
คำขอจำกัดความเร็วต้องส่งผ่าน HTTPS และมีรูปแบบดังต่อไปนี้
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
การใช้พารามิเตอร์
พารามิเตอร์ที่จำเป็น
- พารามิเตอร์
path
หรือplaceId
path
— รายการคู่ละติจูด/ลองจิจูดสูงสุด 100 คู่ที่แสดงถึงเส้นทาง ค่าละติจูดและค่าลองจิจูดต้องคั่นด้วยคอมมา คู่ละติจูด/ลองจิจูดต้องคั่นด้วยอักขระ "|" เมื่อคุณระบุพารามิเตอร์path
API จะจับคู่เส้นทางกับถนนที่ยานพาหนะมีแนวโน้มที่จะวิ่งผ่านก่อน (เช่นเดียวกับคำขอsnapToRoads
) จากนั้นจะกำหนดความเร็วสูงสุดของถนนส่วนที่เกี่ยวข้อง หากไม่ต้องการให้ API จับคู่เส้นทาง คุณต้องส่งพารามิเตอร์placeId
ตามที่อธิบายไว้ด้านล่าง ตัวอย่างต่อไปนี้แสดงพารามิเตอร์path
ที่มีคู่ละติจูด/ลองจิจูด 3 คู่ ดังนี้path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
placeId
— รหัสสถานที่ที่แสดงส่วนของถนนอย่างน้อย 1 รายการ ตรวจสอบว่ารหัสสถานที่แต่ละรหัสหมายถึงส่วนของถนน ไม่ใช่สถานที่ประเภทอื่น คุณสามารถส่งรหัสสถานที่ได้สูงสุด 100 รายการในแต่ละคำขอ API จะไม่จับคู่ถนนกับรหัสสถานที่ที่ระบุ การตอบกลับจะมีขีดจำกัดความเร็วสำหรับรหัสสถานที่แต่ละรหัสในคำขอ คุณสามารถส่งคำขอsnapToRoads
หรือnearestRoads
เพื่อค้นหารหัสสถานที่ที่เกี่ยวข้อง แล้วป้อนรหัสดังกล่าวเป็นอินพุตสำหรับคำขอspeedLimits
ตัวอย่างต่อไปนี้แสดงพารามิเตอร์placeId
ที่มีรหัสสถานที่ 2 รายการplaceId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
— คีย์ API ของแอปพลิเคชัน แอปพลิเคชันของคุณต้องระบุตัวตนทุกครั้งที่ส่งคําขอไปยัง Roads API โดยใส่คีย์ API ไว้ในคําขอแต่ละรายการ ดูวิธีรับกุญแจ
พารามิเตอร์ที่ไม่บังคับ
units
— แสดงการจำกัดความเร็วเป็นกิโลเมตรหรือไมล์ต่อชั่วโมง ซึ่งสามารถตั้งค่าเป็นKPH
หรือMPH
ค่าเริ่มต้นคือKPH
การตอบกลับ
องค์ประกอบต่อไปนี้อาจอยู่ในคําตอบ speedLimits
speedLimits
— อาร์เรย์ข้อมูลเมตาของถนน องค์ประกอบแต่ละรายการประกอบด้วยช่องต่อไปนี้placeId
— ตัวระบุที่ไม่ซ้ำกันสำหรับสถานที่ รหัสสถานที่ทั้งหมดที่ Roads API แสดงจะสอดคล้องกับส่วนของถนนspeedLimit
— ขีดจำกัดความเร็วของถนนส่วนนั้นunits
— แสดงผลKPH
หรือMPH
snappedPoints
— อาร์เรย์ของจุดที่ปักหมุด อาร์เรย์นี้จะแสดงก็ต่อเมื่อคำขอมีพารามิเตอร์path
เท่านั้น โดยจุดแต่ละจุดประกอบด้วยข้อมูลในช่องต่อไปนี้location
— มีค่าlatitude
และlongitude
originalIndex
— จำนวนเต็มที่ระบุค่าที่สอดคล้องกันในคำขอต้นฉบับ ค่าแต่ละค่าในคำขอควรจับคู่กับค่าที่ปักหมุดไว้ในคำตอบ ค่าเหล่านี้จะได้รับการจัดทำดัชนีจาก0
ดังนั้นจุดที่มีoriginalIndex
เป็น4
จะเป็นค่าที่ปักหมุดไว้ของละติจูด/ลองจิจูดที่ 5 ที่ส่งไปยังพารามิเตอร์path
placeId
— ตัวระบุที่ไม่ซ้ำกันสำหรับสถานที่ รหัสสถานที่ทั้งหมดที่ Roads API แสดงจะสอดคล้องกับส่วนของถนนplaceId
สามารถส่งในคำขอจำกัดความเร็วเพื่อกำหนดขีดจำกัดความเร็วตามส่วนของถนนนั้นได้
warning_message
— สตริงที่มีคำเตือนที่ผู้ใช้มองเห็นได้
ตัวอย่างคำขอที่ใช้เส้นทาง
คําขอนี้รับขีดจํากัดความเร็วของถนนแต่ละส่วนที่อยู่ใกล้กับคู่ละติจูด/ลองจิจูดที่ระบุในเส้นทางที่ข้ามสะพาน Vasco da Gama ในลิสบอน โปรตุเกส
คำขอ
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY
การตอบกลับ
{ speedLimits: [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ], snappedPoints: [ { location: { latitude: 38.75807927603043, longitude: -9.037417546438084 }, originalIndex: 0, placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE" }, { location: { latitude: 38.689653701836896, longitude: -9.177051486847693 }, originalIndex: 1, placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU" }, { location: { latitude: 41.13993011767777, longitude: -8.609400794783655 }, originalIndex: 2, placeId: "ChIJJ4vQRudkJA0RpednU70A-5M" } ], warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation." }
โปรดสังเกตข้อความเตือนเกี่ยวกับจุดที่กระจัดกระจายในการตอบกลับข้างต้น หากคุณกำลังขอขีดจำกัดความเร็วของถนนที่ใกล้ที่สุด ณ จุดใดก็ได้ คุณต้องเรียกใช้ speedLimits
ด้วยรหัสสถานที่ที่ดึงมาจากปลายทาง nearestRoads
แทน
ตัวอย่างคำขอโดยใช้รหัสสถานที่
คุณสามารถส่งรหัสสถานที่ของส่วนของถนนแทนการใช้คู่ละติจูด/ลองจิจูด เราขอแนะนำให้คุณขอรหัสสถานที่สำหรับส่วนของถนนโดยใช้คำขอ snapToRoads
หรือ nearestRoads
เมื่อคุณส่งรหัสสถานที่ API จะแสดงผลจำกัดความเร็วของส่วนของถนนที่แสดงโดยรหัสสถานที่แต่ละรหัส API จะไม่ใช้การจับคู่กับถนนกับรหัสสถานที่ที่ระบุ
ตัวอย่างต่อไปนี้ขอข้อมูลเกี่ยวกับขีดจำกัดความเร็วของถนนบางช่วงซึ่งข้ามสะพาน Vasco da Gama ในลิสบอน โปรตุเกส
คำขอ
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY
การตอบกลับ
{ "speedLimits": [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ] }
คําแนะนําในการใช้งาน
เราขอแนะนําให้สุ่มตัวอย่างตําแหน่งของอุปกรณ์เป็นระยะ 5-15 นาที (ค่าที่แน่นอนจะขึ้นอยู่กับความเร็วที่อุปกรณ์เคลื่อนที่) เพื่อลดจํานวนการเรียกใช้บริการจํากัดความเร็ว หากชิ้นงานอยู่กับที่ ตัวอย่างตำแหน่งเดียวก็เพียงพอแล้ว (ไม่จําเป็นต้องเรียกใช้หลายครั้ง)
เราขอแนะนำให้เรียกใช้บริการ Speed Limit เมื่อคุณรวบรวมข้อมูลบางส่วนแล้ว เพื่อลดเวลาในการตอบสนองโดยรวม แทนที่จะเรียก API ทุกครั้งที่ได้รับตำแหน่งของชิ้นงานในอุปกรณ์เคลื่อนที่
ทำไมจึงไม่มีขีดจำกัดความเร็วบาง/ทั้งหมด
สาเหตุที่พบบ่อยที่สุดของการไม่มี speedLimits
คือคำขอจำกัดความเร็วของสถานที่ที่ไม่ใช่ส่วนของถนน
ตัวอย่างข้างต้นใช้สะพาน Vasco da Gama เพื่อแสดงแนวคิด โดยสะพานรองรับถนน E90 ที่ข้ามแม่น้ำ Tejo สะพานมีรหัสสถานที่เป็น ChIJUzt97ZEwGQ0RM1JzQfqoDtU ส่วนของถนนแรกในการตอบกลับข้างต้นเป็นส่วนหนึ่งของถนน E90 และมีรหัสสถานที่เป็น ChIJX12duJAwGQ0Ra0d4Oi4jOGE ในคำขอตัวอย่าง หากคุณแทนที่รหัสสถานที่ของถนนด้วยรหัสสถานที่ของสะพาน ในการตอบกลับจะมีขีดจำกัดความเร็วเพียง 2 รายการในอาร์เรย์ speedLimits
เนื่องจากรหัสสถานที่ของสะพานไม่ได้อ้างอิงถึงส่วนของถนนแต่ละส่วน นอกจากนี้ หากไม่มีรหัสสถานที่ใดเป็นรหัสของถนน คำตอบก็จะไม่มีขีดจำกัดความเร็ว
เมื่อส่งคำขอจำกัดความเร็วโดยใช้รหัสสถานที่ โปรดตรวจสอบว่ารหัสสถานที่แต่ละรหัสหมายถึงส่วนของถนน ไม่ใช่สถานที่ประเภทอื่น รหัสสถานที่ของส่วนถนนแต่ละส่วนจะดึงข้อมูลได้ดีที่สุดโดยใช้คำขอ snapToRoads
หรือ nearestRoads
ซึ่งจะแสดงรหัสสถานที่หลายรายการจากการเรียกใช้เพียงครั้งเดียว