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
— สตริงที่มีคำเตือนที่ผู้ใช้มองเห็นได้
ตัวอย่างคำขอที่ใช้เส้นทาง
คำขอนี้ได้กำหนดขีดจำกัดความเร็วของแต่ละส่วนถนนที่ใกล้ที่สุดกับคู่ละติจูด/ลองจิจูดที่ระบุไว้ในเส้นทางที่ข้ามสะพานวาสโกดากามาในลิสบอน โปรตุเกส
คำขอ
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 นาที (มูลค่าที่แน่นอนขึ้นอยู่กับความเร็วในการเดินทางของเนื้อหา) เพื่อลดปริมาณการเรียกใช้บริการจำกัดความเร็ว หากเนื้อหาไม่อยู่กับที่ ตัวอย่างสถานที่รายการเดียวก็เพียงพอแล้ว (ไม่จำเป็นต้องเรียกใช้หลายครั้ง)
เพื่อลดเวลาในการตอบสนองโดยรวม เราขอแนะนำให้เรียกใช้บริการจำกัดความเร็วเมื่อคุณได้สะสมข้อมูลแล้ว แทนการเรียก API ทุกครั้งที่ได้รับตำแหน่งของเนื้อหาบนอุปกรณ์เคลื่อนที่
ทำไมจึงไม่มีการจำกัดความเร็วบางอย่าง/ทั้งหมด
สาเหตุที่พบได้บ่อยที่สุดที่ทำให้ speedLimits
หายไปคือการขอจำกัดความเร็วของสถานที่ที่ไม่ใช่ส่วนของถนน
ตัวอย่างด้านบนใช้สะพาน Vasco da Gama เพื่ออธิบายแนวคิด
สะพานดังกล่าวรองรับถนนที่ E90 สำหรับข้ามแม่น้ำรีโอเทโจ ตัวบริดจ์มีรหัสสถานที่เป็น ChIJUzt97ZEwGQ0RM1JzQfqoDtU ส่วนถนนส่วนแรกในคำตอบข้างต้นเป็นส่วนหนึ่งของถนน E90 และมีรหัสสถานที่เป็น ChIJX12duJAwGQ0Ra0d4Oi4jOGE ในคำขอตัวอย่าง หากคุณแทนที่รหัสตำแหน่งถนนด้วยรหัสสถานที่ของสะพาน ในการตอบสนองจะมีขีดจำกัดความเร็วเพียง 2 รายการในอาร์เรย์ speedLimits
เนื่องจากรหัสสถานที่ของสะพานไม่ได้หมายถึงส่วนของถนนแต่ละส่วน นอกจากนี้ หากไม่มีรหัสสถานที่ใดๆ สำหรับส่วนของถนน การตอบสนองก็จะไม่มีการจำกัดความเร็ว
เมื่อส่งคำขอจำกัดความเร็วโดยใช้รหัสสถานที่ ให้ตรวจสอบว่ารหัสสถานที่แต่ละรายการอ้างอิงถึงส่วนของถนน ไม่ใช่สถานที่ประเภทอื่น ระบบจะดึงรหัสสถานที่ของส่วนถนนแต่ละเส้นได้ดีที่สุดโดยใช้คำขอ snapToRoads
หรือ nearestRoads
ซึ่งทั้งคู่สามารถแสดงรหัสสถานที่หลายรายการจากการเรียกครั้งเดียวได้