ขีดจำกัดความเร็ว

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=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 และ 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 จะไม่ปักหมุดถนนสำหรับรหัสสถานที่ที่ระบุ

ตัวอย่างต่อไปนี้จะขอการจำกัดความเร็วสำหรับส่วนของถนนบางส่วนที่ข้ามสะพานวาสโก ดา กามาในลิสบอน ประเทศโปรตุเกส

คำขอ

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 จะแสดงผลการจำกัดความเร็วสูงสุดที่ประกาศไว้สำหรับ รถยนต์เท่านั้น