速限

Roads API 會傳回特定道路的速限資訊 區隔如果路段有速限不同的路段,系統預設會 傳回該路段的速限。

Roads API 傳回的速限資料的準確度 無法保證提供的速限資料並非即時資訊, 預估、錯誤、不完整和/或過時查看涵蓋範圍詳細資料 ,查看可使用速限資料的區域。

要求

您必須透過 HTTPS 傳送速限要求,並採用下列格式:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

參數使用狀況

必要參數

  • pathplaceId 參數。
    • path:最多包含 100 個經緯度組合的清單 可建立個別路徑經緯度值必須以半形逗號分隔。 緯度/經度組合必須以直立線字元「|」分隔。 提供 path 參數時,API 會先對齊 最有可能駕駛的道路 (與 snapToRoads 請求),然後決定 相關路段如果您不希望 API 擷取路徑, 必須傳遞 placeId 參數,說明如下。以下範例 會顯示包含三個經緯度組合的 path 參數: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
    • placeId:代表一或多個路段的地點 ID。 每個地點 ID 皆是指路段,而非不同類型 。每個 ID 最多可傳送 100 個地點 ID 請求。API 不會針對提供的地點 ID 執行道路間距。 回應中會包含要求中每個地點 ID 的速限。 您可以傳送 snapToRoadsnearestRoads 要求 以便找出相關地點 ID,然後將這些 ID 做為輸入內容的 speedLimits 要求。以下範例顯示了 placeId 參數,具有兩個地點 ID: placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key:應用程式的 API 金鑰。您的 每當應用程式傳送要求給 在每個要求中加入 API 金鑰,即可Roads API。 瞭解如何取得金鑰

選用參數

  • units - 要以公里或英里為單位傳回速限 小時。可設為 KPHMPH。預設為 KPH

回應

speedLimits 回應中可能會顯示下列元素:

  • speedLimits:道路中繼資料的陣列。每個元素都由 以下欄位:
    • placeId:地點的專屬 ID。傳回所有地點 ID Roads API 對應於路段。
    • speedLimit — 該路段的速限。
    • units - 傳回 KPHMPH
  • snappedPoints — 貼齊點的陣列。這個陣列存在 只有在要求包含 path 參數的情況下。每個點是由 以下欄位:
    • location - 包含 latitudelongitude 值。
    • originalIndex:代表對應值的整數 原始要求中所述。要求中的每個值都應對應至 回應中的成功連結值這些值是從 0 建立索引,因此 originalIndex4 的點,會是第 5 個百分位數的接合值 傳遞至 path 參數的經緯度。
    • placeId:地點的專屬 ID。傳回所有地點 ID 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 端點。

使用地點 ID 的要求範例

不使用經緯度組合,改為傳送 路段建議您先使用 snapToRoadsnearestRoads 要求。傳遞地點 ID 時,API 會傳回各地點 ID 代表的路段速限。 API 不會將任何路標套用至提供的地點 ID。

下例要求某些路段的速限 跨越葡萄牙里斯本的瓦斯科達加馬橋

要求

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) 通過的公路。橋梁 其地點 ID 是 ChIJUzt97ZEwGQ0RM1JzQfqoDtU。第一個路段 是 E90 道路的一部分,其地點 ID 為 ChIJX12duJAwGQ0Ra0d4Oi4jOGE。要求範例中的道路 包含橋地地點 ID 的地點 ID,那麼在回應中只會有 橋樑的地點 ID 的 speedLimits 陣列出現兩個速限 未提及個別路段。此外,如果 地點 ID 適用於路段,因此回應不含任何 速限。

使用地點 ID 提出速限要求時,請確定每個地點 ID 這是指路段,而不是不同類型的地點。地點 ID: 使用 snapToRoads 擷取個別路段最好 或 nearestRoads 要求,兩者都可以從 呼叫。