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