制限速度

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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 パラメータを渡す必要があります。次の例は、3 つの緯度と経度のペアを含む path パラメータ path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796 を示しています。
    • placeId - 1 つ以上の道路セグメントを表す場所 ID です。各場所 ID が道路の種類を参照し、異なるタイプの場所ではないことを確認してください。リクエストごとに最大 100 個の場所 ID を渡すことができます。API は指定された場所 ID に対して道路スナップを実行しません。レスポンスには、リクエスト内の場所 ID ごとに速度上限が含まれます。snapToRoads または nearestRoads リクエストを送信して関連する場所 ID を検索し、speedLimits リクエストへの入力として指定できます。次の例は、2 つの場所 ID を含む placeId パラメータを示しています。 placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key - アプリケーションの API キー。アプリケーションは、リクエストごとに API キーを含めることで、Roads API にリクエストを送信するたびに API 自体を識別する必要があります。キーを取得する方法を学習する。

オプション パラメータ

  • units - 制限速度を時速(km)またはマイル(マイル)で返すかどうかを指定します。KPH または MPH に設定できます。デフォルトは KPH です。

レスポンス

speedLimits レスポンスには、次の要素が存在する場合があります。

  • speedLimits - 道路のメタデータの配列。各要素は、次のフィールドで構成されます。
    • placeId: 場所の一意の識別子です。Roads API によって返されるすべての場所 ID は、道路セグメントに対応します。
    • speedLimit - その道路セグメントの速度制限。
    • units - KPH または MPH を返します。
  • snappedPoints - スナップされたポイントの配列。この配列は、リクエストに path パラメータが含まれている場合にのみ存在します。各ポイントは次のフィールドで構成されます。
    • location - latitudelongitude の値が含まれます。
    • originalIndex - 元のリクエスト内の対応する値を示す整数。リクエスト内の各値は、レスポンス内のスナップされた値にマッピングされる必要があります。これらの値は 0 からインデックスに登録されるため、originalIndex4 のポイントは、path パラメータに渡される 5 つ目の緯度/経度のスナップ値になります。
    • placeId: 場所の一意の識別子です。Roads API によって返されるすべての場所 ID は、道路セグメントに対応します。速度制限リクエストで 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."
}

上記のレスポンスには、ポイントのスパース性に関する警告メッセージがあります。任意の地点における最も近い道路セグメントの速度制限をリクエストする場合は、代わりに nearestRoads エンドポイントから取得した場所 ID を指定して、speedLimits を呼び出す必要があります。

場所 ID を使用したリクエストの例

緯度と経度のペアを使用する代わりに、道路セグメントの場所 ID を渡すことができます。snapToRoads または nearestRoads リクエストを使用して、道路セグメントの場所 ID を取得することをおすすめします。場所 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 分間隔でサンプリングすることをおすすめします(正確な値はアセットの移動速度によって異なります)。アセットが静止している場合は、1 つのロケーション サンプルで十分です(複数の呼び出しを行う必要はありません)。

全体的なレイテンシを最小限に抑えるため、モバイル アセットの場所を受け取るたびに API を呼び出すのではなく、ある程度データが蓄積されたら制限速度サービスを呼び出すことをおすすめします。

制限速度の一部または全部が表示されない理由

speedLimits が見つからない最も一般的な原因は、道路セグメントではない場所の制限速度をリクエストすることです。

上の例では、バスコ ダ ガマ橋を使ってコンセプトを説明しています。この橋は、リオテホ橋の E90 橋を支えています。ブリッジ自体の場所 ID は ChIJUzt97ZEwGQ0RM1JzQfqoDtU です。上のレスポンスの最初の道路セグメントは E90 道路の一部で、場所 ID は ChIJX12duJAwGQ0Ra0d4Oi4jOGE です。このサンプル リクエストでは、道路の場所 ID を橋の場所 ID に置き換えた場合、ブリッジの場所 ID が個々の道路セグメントを参照しないため、レスポンスでは speedLimits 配列に 2 つの制限速度しかありません。また、道路 ID 用としてない場所 ID がない場合、レスポンスには速度制限がありません。

場所 ID を使用して制限速度をリクエストする場合は、各場所 ID が道路の種類を参照し、別のタイプの場所は参照しないようにしてください。個々の道路セグメントの場所 ID は、snapToRoads または nearestRoads リクエストを使用して取得するのが最も適しています。このリクエストは、1 回の呼び出しで複数の場所 ID を返すことができます。