イベントデータ配信 mapserv.eventdata
センサーなどから取得したデータはイベントデータとして記録されています。 イベントデータ配信APIは、指定した条件に一致するイベントデータを取得することができます。
実行方式は JSON-RPC v2.0 を利用します。
リクエスト例
{
"jsonrpc": "2.0",
"method": "mapserv.eventdata",
"params": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[
[139.7, 34.9], [139.7, 36.1], [140.9, 36.1],
[140.9, 34.9], [139.7, 34.9]
]]
},
"properties": {
"table": "riskmap.riskmap_probability",
"columns": ["start_datetime", "risk"],
"conds": {
"and": [
{
">=": ["start_datetime", "2020-05-05 13:00:00"]
},
{
"<": ["end_datetime", "2020-05-05 15:00:00"]
}
]
}
}
},
"id": "mapserv_eventdata"
}
パラメータ
リクエストパラメータは GeoJSON の Feature 形式です。
Geometry には検索したい空間的範囲を指定します。タイプは Polygon, Line, Point やこれらの Collection でも構いません。
Properties には以下のパラメータを指定します。
パラメータ名 | データ型 | 内容 | 既定値 |
---|---|---|---|
table | string | イベントデータを含むテーブル名 | 必須 |
columns | [string] | 取得するカラムのリスト | [] (すべてのカラム) |
conds | object | 検索条件 | なし(すべてのレコード)(検索条件を指定しない場合はパラメータキーも指定しない) |
出力サンプル
戻り値
イベントデータの各レコードが1つの Feature となる GeoJSON (FeatureCollection) が返ります。
各 Feature の geometry
には geom の GeoJSON 表現が、
properties
には table
にテーブル名が、あとはカラム名と値のセットが入ります。
説明
イベントデータの空間属性および非空間属性を、条件を指定して取得します。 他の API に比べて複雑な検索条件を指定することができます。
- table で指定したテーブルに格納されたイベントデータが対象になります。
- geomカラムに記録されている空間属性と、リクエストのgeometry部分で指定した空間属性が 交差するレコードが取得対象になります。
- columns が指定されている場合は指定されたカラムだけが返されます。ただし geom カラムは GeoJSON geometry として常に返されます。
- conds が指定されている場合、 geometry の条件と conds の条件をすべて満たすレコードが 取得対象になります。
- conds は JsonLogic 記法で記述します。
利用できるオペレータは以下の通りです。A,Bにはカラム名または定数が入ります(「カラム名と同じ文字列定数」は表現できません)。
- {"=":[A,B]} A が B に等しい
- {"<>":[A,B]} A が B に等しくない
- {">":[A,B]} A が B より大きい
- {">=":[A,B]} A が B と等しいか大きい
- {"<":[A,B]} A が B より小さい
- {"<=":[A,B]} A が B と等しいか小さい
- {"!":[A]} A が成立しない
- {"and":[A,B,...]} A,B,... がすべてを満たす
- {"or":[A,B,...]} A,B,... のいずれかを満たす
- {"in":[A,[B]]} A が [B] に含まれる
- {"min":[A]} [A] の最小値
- {"max":[A]} [A] の最大値
条件を満たすレコードが多い場合や、geom に格納されている空間属性が 複雑な形状をしている場合には、非常に大きな GeoJSON が返ることがあります。