Skip to content

ルート探索 routing.dijkstra

指定したリスクマップの指定した日時におけるリスクを基に、安全で近い経路を探します。

実行方式は JSON-RPC v2.0 を利用します。

リクエスト例


{
  "jsonrpc": "2.0",
  "method": "routing.dijkstra",
  "params": [
    {
      "themes": {
        "peopleflow_congestiondegree_5min": [0, 0, 0, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000]
      },
      "start_lonlat": [139.632214, 35.457874],
      "goal_lonlat": [139.632108, 35.450862],
      "start_datetime": "2018-08-23 14:00:00+09",
      "via": [
        [139.630030, 35.456772],
        [139.635325, 35.458278],
        [139.628369, 35.461005],
        [139.635849, 35.462663]
      ],
      "map": "adf_170701_v2",
      "reorder_waypoints": true,
      "with_kml": true
    }
  ],
  "id": "routing_dijkstra"
}

パラメータ


パラメータ名 データ型 内容 既定値
themes [string, [string,...]] リスクマップのテーマ名 必須
start_lonlat [number, number] 始点の経度,緯度 必須
goal_lonlat [number, number] 終点の経度,緯度 必須
start_datetime string 日時 ("YYYY-MM-DD hh:mm:ss+TZ") 必須
via array of array of number 経由地の経度と緯度 [] (経由地なし)
map string 利用する地図データ サーバ側で決定
reorder_waypoints boolean true を指定すると経由地の訪問順序最適化を行う false
with_kml boolean true を指定するとレスポンスに KML を含む false

params.themes の要素

種別 データ型 説明
キー string リスクマップのテーマ名
array of number リスク感受性

備考および制約事項

  • リスクを考慮しない場合は、themes に空オブジェクト ({}) を指定する
  • リスク感受性の i 番目の要素 (i = 0, 1, ..., 10) が x であるとき、次のように解釈される
    • リスクが i の領域を通過するときの所要時間を (1.0 + x) 倍として計算する
    • 閾値以上のリスクを回避したければ [0, 0, 0, 0, 0, 0, 0, 0, 9999, 9999, 9999] のように指定
      • 上記指定の意味: リスク 0 から 7 は通行に支障なし。リスク 8 から 10 は通常の 10000 倍の所要時間 (事実上通行できない)
  • start_lonlat, end_lonlat, via に指定可能な範囲は地図データに依存する。地図がカバーする範囲を逸脱している場合は経路探索を行えない
  • map に指定可能な値は地図データに依存する。特に必要がない場合は未指定とすることを推奨

出力サンプル


{
  "jsonrpc": "2.0",
  "result": {
    "kml": "<?xml ....",
    "geojson": {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [139.632911226, 35.457119237],
              [139.631598771, 35.458785682]
            ]
          },
          "properties": {
            "edge_id": 240255,
            "length": 219.95193,
            "speed": 30,
            "risk": 3,
            "waypoint": false,
            "notes": []
          }
        },
        ...
      ]
    },
    "length": 6090.416765900001,
    "time": 0.18572096683666667,
    "total_cost": 525.1314270966666,
    "max_risk": 3,
    "avr_risk": 1.8275290401567656,
    "start_node": 186048,
    "end_node": 185990
  },
  "id": "routing_dijkstra"
}

戻り値


経路の形状や予測所要時間などの情報を含む JSON オブジェクトを返します。

キー データ型 内容
kml string KML フォーマットの経路 (with_kml: true の場合のみ)
geojson object (GeoJSON) GeoJSON フォーマットの経路
length number 経路の総距離 (m)
time number 予測所要時間 (時間)
total_cost number 経路上の「コスト * 距離」の総和
max_risk number 経路上の最大リスク
avr_risk number 経路上の平均リスク (距離按分)
start_node number 出発地近傍のノード ID
end_node number 目的地近傍のノード ID

result.geojson

result.geojson の値は FeatureCollection 型の GeoJSON オブジェクトとする。

result.geojson.features[].geometry

各 feature の geometry オブジェクトは LineString として表現された経路情報とする。 一つの LineString が表す経路の単位は地図データに依存する。 coordinates は 2 点以上であるが、必ずしも 2 点とは限らない。

result.geojson.features[].properties

各 feature の properties には以下の情報を含める。

キー データ型 説明
edge_id number エッジ ID
length number 経路長 (m)
speed number 規制速度 (km/h)
risk number 経路上のリスク
waypoint boolean 当該経路の終点が目的地または経由地なら true
notes array of string 当該経路上の注記情報 (条件付き規制情報等)

説明


出発地 (start_lonlat) から目的地 (goal_lonlat) まで、経由地 (via) を通って移動する経路を出力します。

このとき、出発日時 (start_datetime) における経路上のリスクを考慮して、リスクを回避する経路を出力します。

リクエストパラメータの reorder_waypointstrue を指定した場合は、全体のコスト (リスク回避を考慮した所要時間) が最小となるように経由地を並べ替えます。 reorder_waypoints が指定されない場合、または、false が指定された場合には、指定された順序で経由地を辿ります。