Roads API จะแสดงขีดจำกัดความเร็วที่ประกาศไว้สำหรับส่วนของถนนที่ระบุ ในกรณีของส่วนของถนนที่มีขีดจำกัดความเร็วผันแปร ระบบจะแสดงขีดจำกัดความเร็วเริ่มต้นสำหรับส่วนนั้น
เราไม่สามารถรับประกันความถูกต้องของข้อมูลขีดจำกัดความเร็วที่ Roads API แสดง ข้อมูลขีดจำกัดความเร็วที่ให้ไว้ไม่ใช่ข้อมูลแบบเรียลไทม์ และอาจเป็นข้อมูลโดยประมาณ ไม่ถูกต้อง ไม่สมบูรณ์ หรือล้าสมัย ดูรายละเอียดความครอบคลุม เพื่อดูภูมิภาคที่มีข้อมูลขีดจำกัดความเร็ว
คำขอ
ส่งคำขอขีดจำกัดความเร็วโดยใช้ HTTPS ในรูปแบบต่อไปนี้
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEYการใช้พารามิเตอร์
พารามิเตอร์ที่จำเป็น
พารามิเตอร์
pathหรือplaceIdpath\- รายการพิกัดละติจูด/ลองจิจูดสูงสุด 100 คู่ที่แสดงเส้นทาง ค่าละติจูดและลองจิจูดต้องคั่นด้วยคอมมา ส่วนคู่พิกัดละติจูด/ลองจิจูดต้องคั่นด้วยอักขระไปป์ "|" เมื่อคุณระบุพารามิเตอร์pathAPI จะปรับเส้นทางให้ตรงกับ ถนนที่ยานพาหนะน่าจะใช้มากที่สุดก่อน (เช่นเดียวกับคำขอsnapToRoads) จากนั้นจะกำหนดขีดจำกัดความเร็วสำหรับ ส่วนของถนนที่เกี่ยวข้อง หากไม่ต้องการให้ API ปรับเส้นทาง คุณต้องส่งพารามิเตอร์placeIdตามที่อธิบายไว้ด้านล่าง ตัวอย่างต่อไปนี้ แสดงพารามิเตอร์pathที่มีพิกัดละติจูด/ลองจิจูด 3 คู่:path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796placeId\- รหัสสถานที่อย่างน้อย 1 รายการที่แสดงส่วนของถนน ตรวจสอบว่ารหัสสถานที่แต่ละรายการอ้างอิงถึงส่วนของถนน ไม่ใช่สถานที่ประเภทอื่น คุณส่งรหัสสถานที่ได้สูงสุด 100 รายการในแต่ละคำขอ การตอบกลับจะมีขีดจำกัดความเร็วสำหรับรหัสสถานที่แต่ละรายการในคำขอAPI จะไม่ปรับรหัสสถานที่ที่ระบุให้ตรงกับถนน คุณสามารถส่งคำขอ
snapToRoadsหรือnearestRoadsเพื่อหารหัสสถานที่ที่เกี่ยวข้อง แล้วระบุรหัสเหล่านั้นเป็นอินพุตสำหรับคำขอspeedLimitsตัวอย่างต่อไปนี้แสดงพารามิเตอร์placeIdที่มีรหัสสถานที่ 2 รายการplaceId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
key\- คีย์ API ของแอปพลิเคชัน แอปพลิเคชันต้องระบุตัวเองทุกครั้งที่ส่งคำขอไปยัง Roads API โดยใส่คีย์ API ในคำขอแต่ละรายการ ดูวิธีรับคีย์
พารามิเตอร์ที่ไม่บังคับ
units\- เลือกว่าจะแสดงขีดจำกัดความเร็วเป็นกิโลเมตรหรือไมล์ต่อชั่วโมง โดยตั้งค่าเป็นKPHหรือMPHก็ได้ ค่าเริ่มต้นคือKPH
คำตอบ
องค์ประกอบต่อไปนี้อาจปรากฏในการตอบกลับ speedLimits
speedLimits\- อาร์เรย์ข้อมูลเมตาของถนน แต่ละองค์ประกอบประกอบด้วยช่องต่อไปนี้placeId\- ตัวระบุที่ไม่ซ้ำกันสำหรับสถานที่ รหัสสถานที่ทั้งหมดที่แสดง โดย Roads API จะสอดคล้องกับส่วนของถนนspeedLimit\- ขีดจำกัดความเร็วสำหรับส่วนของถนนนั้นunits\- แสดงKPHหรือMPH
snappedPoints\- อาร์เรย์ของจุดที่ปรับให้ตรงกับถนน อาร์เรย์นี้จะปรากฏขึ้นก็ต่อเมื่อคำขอมีพารามิเตอร์pathแต่ละจุดประกอบด้วยช่องต่อไปนี้location\- มีค่าlatitudeและlongitudeoriginalIndex\- จำนวนเต็มที่ระบุค่าที่สอดคล้องกันในคำขอเดิม ค่าแต่ละค่าในคำขอควรจับคู่กับค่าที่ปรับให้ตรงกับถนนในการตอบกลับ ค่าเหล่านี้จะจัดทำดัชนีจาก0ดังนั้นจุดที่มีoriginalIndexเป็น4จะเป็นค่าที่ปรับให้ตรงกับถนนของละติจูด/ลองจิจูดที่ 5 ที่ส่งไปยังพารามิเตอร์pathplaceId\- ตัวระบุที่ไม่ซ้ำกันสำหรับสถานที่ รหัสสถานที่ทั้งหมดที่แสดง โดย 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 จะไม่ปรับรหัสสถานที่ที่ระบุให้ตรงกับถนน
ตัวอย่างต่อไปนี้แสดงคำขอขีดจำกัดความเร็วสำหรับส่วนของถนนบางส่วนที่ข้ามสะพานวาสโก ดา กามา ในลิสบอน ประเทศโปรตุเกส
คำขอ
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 หายไปคือการขอขีดจำกัดความเร็วของสถานที่ที่ไม่ใช่ส่วนของถนน
ตัวอย่างข้างต้นใช้สะพานวาสโก ดา กามา เพื่อแสดงแนวคิด โดยสะพานรองรับถนน E90 ที่ข้ามแม่น้ำ Tagus ตัวสะพานเองมีรหัสสถานที่ ChIJUzt97ZEwGQ0RM1JzQfqoDtU ส่วนของถนนแรกในการตอบกลับข้างต้นเป็นส่วนหนึ่งของถนน E90 และมีรหัสสถานที่ ChIJX12duJAwGQ0Ra0d4Oi4jOGE ในคำขอตัวอย่าง หากคุณแทนที่รหัสสถานที่ของถนนด้วยรหัสสถานที่ของสะพาน การตอบกลับจะมีขีดจำกัดความเร็วเพียง 2 รายการในอาร์เรย์ speedLimits เนื่องจากรหัสสถานที่ของสะพานไม่ได้อ้างอิงถึงส่วนของถนนแต่ละส่วน นอกจากนี้ หากไม่มีรหัสสถานที่ใดเป็นรหัสสถานที่ของส่วนของถนน การตอบกลับจะไม่แสดงขีดจำกัดความเร็ว
เมื่อส่งคำขอขีดจำกัดความเร็วโดยใช้รหัสสถานที่ โปรดตรวจสอบว่ารหัสสถานที่แต่ละรายการอ้างอิงถึงส่วนของถนน ไม่ใช่สถานที่ประเภทอื่น วิธีที่ดีที่สุดในการดึงรหัสสถานที่สำหรับส่วนของถนนแต่ละส่วนคือใช้คำขอ snapToRoads หรือ nearestRoads ซึ่งทั้ง 2 คำขอสามารถแสดงรหัสสถานที่หลายรายการจากการเรียกใช้เพียงครั้งเดียว
จะเกิดอะไรขึ้นหากส่วนของถนนประกาศขีดจำกัดความเร็วแยกกันสำหรับรถยนต์และรถบรรทุก
Roads API จะแสดงขีดจำกัดความเร็วสูงสุดที่ประกาศไว้สำหรับ รถยนต์เท่านั้น