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

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