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

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 คือการขอจำกัดความเร็ว ของสถานที่ที่ไม่ใช่ส่วนของถนน

ตัวอย่างข้างต้นใช้สะพาน Vasco da Gama เพื่ออธิบายแนวคิด สะพานรองรับถนน E90 ที่ข้ามแม่น้ำ Rio Tejo บริดจ์ มีรหัสสถานที่ ChIJUzt97ZEwGQ0RM1JzQfqoDtU ส่วนถนนแรก ในการตอบกลับข้างต้นเป็นส่วนหนึ่งของถนน E90 และมีรหัสสถานที่ ChIJX12duJAwGQ0Ra0d4Oi4jOGE ในคำขอตัวอย่าง หากคุณแทนที่รหัสถนน ด้วยรหัสสถานที่ของสะพาน ในการตอบกลับจะมี ขีดจำกัดความเร็วเพียง 2 รายการในอาร์เรย์ speedLimits เนื่องจากรหัสสถานที่ของสะพาน ไม่ได้อ้างอิงถึงส่วนของถนนแต่ละส่วน นอกจากนี้ หากไม่มีรหัสสถานที่สำหรับส่วนของถนน คำตอบจะไม่มี ขีดจำกัดความเร็ว

เมื่อส่งคำขอจำกัดความเร็วโดยใช้รหัสสถานที่ โปรดตรวจสอบว่ารหัสสถานที่แต่ละรายการ อ้างอิงถึงส่วนของถนน ไม่ใช่สถานที่ประเภทอื่น การดึงรหัสสถานที่สำหรับ ส่วนถนนแต่ละส่วนทำได้ดีที่สุดโดยใช้คำขอ snapToRoads หรือ nearestRoads ซึ่งคำขอใดคำขอหนึ่งจะแสดงรหัสสถานที่หลายรายการจากการเรียกครั้งเดียวได้

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

Roads API จะแสดงขีดจำกัดความเร็วสูงสุดที่ประกาศไว้สำหรับ รถยนต์เท่านั้น