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

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 — สตริงที่มีคำเตือนที่ผู้ใช้มองเห็นได้

ตัวอย่างคำขอที่ใช้เส้นทาง

คำขอนี้ได้กำหนดความเร็วสูงสุดของถนนแต่ละส่วนที่ใกล้กับ คู่ละติจูด/ลองจิจูดที่ระบุในเส้นทางที่ข้ามผ่าน Vasco da Gama ในเมืองลิสบอน ประเทศโปรตุเกส

คำขอ

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 รายการใดก็ได้ที่แสดงรหัสสถานที่หลายรายการจาก การโทรสายเดียว