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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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