このページでは WebAPI の仕様を説明します。
2D 建物マッチング機能
機能概要
GeoJSON ポリゴンで表現された 2D 建物データを問い合わせとして送信すると、 対応する 3D都市モデルの建物データを GeoJSON 形式で返します。
API 詳細
リクエスト
- エンドポイント:
/api/building2d
- HTTP メソッド: POST
- パラメータ: なし
- リクエストボディ: 問い合わせ 2D ポリゴン
Content-type: "application/json"
書式: GeoJSON (Polygon, MultiPolygon, Feature, FeatureCollection)
サンプル
{ "type": "Feature", "properties": { "fid": 64222, "id": "004241081F01C8013504000000000000", "olc": "8Q7W4RG2+J2J", "area": "320.6021978445351" }, "geometry": { "type": "Polygon", "coordinates": [[ [138.79995583, 35.1266925], [138.80014306, 35.12663333], [138.80007472, 35.12648583], [138.79988722, 35.12654472], [138.79995583, 35.1266925] ]] } }
- エンドポイント:
レスポンス
HTTP Status Code: 200 (Success)
Content-type: "application/json"
書式: GeoJSON FeatureCollection
- 各 Feature の "type" は "Polygon" になります。
- "coordinates" にはリクエストのポリゴンではなく、 マッチした 3D都市モデルの建物データの座標が入ります。
- リクエストが "Feature" の場合、"properties" の値は レスポンスの Feature の "properties" に引き継がれます。
- レスポンスの Feature の "peoperties" には、
以下の値が追加されます。
- "plateau_bldid": 3D都市モデルの建物データ ID
- "plateau_area": 3D都市モデルの建物データの面積(㎡)
- "intersection_area": リクエストのポリゴンと交差した 部分の面積(㎡)
- "source_area": リクエストのポリゴンの面積(㎡)
- "area_ratio": 3D都市モデルの建物データの面積に対する 交差した部分の面積の比率。
- "dist": リクエストのポリゴンと 3D都市モデルの建物データの 重心間の距離(m)
- "confidence": 一致判定の確信度。 "high" または "low"。
サンプル
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [[ [138.799867954412, 35.1265309012756], [138.800015901042, 35.1264820371127], [138.800083779088, 35.126620602316], [138.799935832579, 35.1266695567059], [138.799867954412, 35.1265309012756] ]] }, "properties": { "fid": 64222, "id": "004241081F01C8013504000000000000", "olc": "8Q7W4RG2+J2J", "area": "320.6021978445351", "plateau_bldid": "22203-bldg-22489", "plateau_area": 240.9401, "intersection_area": 195.7563, "source_area": 320.6022, "area_ratio": 0.75, "dist": 3.88, "confidence": "high" } } ] }
HTTP Status Code: 400 (Bad Request)
- リクエストパラメータの解析に失敗した場合、または 対応していないフォーマットの場合。
3D 点群マッチング機能
機能概要
3D 点群データを問い合わせデータとして送信すると、その点群に 対応する 3D都市モデルの建物データのリストと、点群がそれぞれの建物表面を カバーする面積を 2D GeoJSON 形式で返します。
API 詳細
リクエスト
- エンドポイント:
/api/pointcloud3d
- HTTP メソッド: POST
- パラメータ: なし
- リクエストボディ: 3D 点群 LAS ファイルを含むマルチパートフォームデータ
Content-type: "multipart/form-data"
- ファイルパート
- file (必須): バイナリデータ (application/octet-stream)
- その他のフォームデータ
- srid: LAS ファイルの空間参照系ID (整数値)、ただし 処理可能な値は JGD2011 の平面直角座標系1系の 6669 から19系の 6687 までです。デフォルトは 6676 です。
- ファイルパート
サンプル
(バイナリデータのため省略)
- エンドポイント:
レスポンス
HTTP Status Code: 200 (Success)
Content-type: "application/json"
書式: GeoJSON FeatureCollection
- 各 Feature の "type" は "Polygon" になります。
- "coordinates" にはマッチした 3D都市モデルの建物データの座標が入ります。
- レスポンスの Feature の "peoperties" には、
以下の値が追加されます。
- "plateau_bldid": 3D都市モデルの建物データ ID
- "plateau_area": 3D都市モデルの建物データの面積(㎡)
- "num_points_in_region": この建物の領域(床面を1m拡大した 土地から垂直に延びる柱状)内に存在する、点群から生成した 1m グリッド上の点の数
- "num_point_near_wall": この建物の表面(壁面と屋上)から 1m 以内に存在する、点群から生成した 1m グリッド上の点の数
- "area": この建物の表面積(㎡)
サンプル
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [[ [[138.858442678109,35.105507117857]], [[138.858482801685,35.1055035069966]], [[138.858486923358,35.1055344254259]], [[138.858495643877,35.1055293713408]], [[138.858496420089,35.1055287731858]], [[138.858532374915,35.1055020325634]], [[138.858670333762,35.1054908918083]], [[138.858677167083,35.1055480858408]], [[138.85860737183,35.1055531078681]], [[138.858607429441,35.105553738714]], [[138.858505882623,35.1055604041942]], [[138.858504698293,35.1055604888271]], [[138.858500028791,35.1055620360049]], [[138.858491751617,35.1055601169505]], [[138.858490168329,35.1055587739618]], [[138.858490476815,35.1055610843722]], [[138.858450367822,35.1055647754213]], [[138.858442678109,35.105507117857]] ]] }, "properties": { "plateau_bldid": "22203-bldg-115256", "num_points_in_region": 706, "num_points_near_wall": 485, "area": 1237.93 } }, (繰り返し省略) { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [[ [[138.858450367822,35.1055647754213]], [[138.858489248363,35.1055613638489]], [[138.858499512984,35.1056378874932]], [[138.858501698734,35.1056548166058]], [[138.858513881592,35.1056538538869]], [[138.858670342922,35.1056402172829]], [[138.858719858998,35.1056359448354]], [[138.858729174938,35.105706949873]], [[138.858740061578,35.105706071196]], [[138.858744862435,35.1057430129095]], [[138.858733359887,35.10574402412]], [[138.85873579043,35.1057627337725]], [[138.858680114376,35.1057676338329]], [[138.858679609208,35.1057637473657]], [[138.858673330496,35.105764297798]], [[138.858673716845,35.1057673534782]], [[138.858580790716,35.105775529591]], [[138.858582990884,35.1057969983705]], [[138.858550757812,35.1057996745606]], [[138.858475247813,35.1057514646533]], [[138.858450367822,35.1055647754213]] ]] }, "properties": { "plateau_bldid": "22203-bldg-97160", "num_points_in_region": 1411, "num_points_near_wall": 967, "area": 1938.33 } } ] }
補足:カバー率の計算 "num_points_in_region", "num_points_near_wall" は 1m グリッドにダウンサンプリングした点を数えているため、 建物表面上を点群がカバーしているおおよその面積を表します。
上記の例の最初のポリゴンでは、 "num_points_near_wall" が 485, "area" が 1237.93 なので、建物表面全体の約 39% (485 / 1237.94 = 0.3934) を点群がカバーしていると計算できます。
HTTP Status Code: 400 (Bad Request)
- 対応していないファイルフォーマットの場合。
3D テクスチャマッピング機能
機能概要
3D 点群データと 3D都市モデルの建物データ ID を問い合わせデータとして送信すると、 その建物に点群データから生成したテクスチャをマッピングした 3D都市モデルを Wavefront OBJ 形式で返します。
API 詳細
リクエスト
- エンドポイント:
/api/mapping3d
- HTTP メソッド: POST
- パラメータ: なし
- リクエストボディ: 3D 点群 LAS ファイルを含むマルチパートフォームデータ
Content-type: "multipart/form-data"
- ファイルパート
- file (必須): バイナリデータ (application/octet-stream)
- その他のフォームデータ
- bldid (必須): 対象とする 3D都市モデルの建物データの ID (文字列)。
- srid: LAS ファイルの空間参照系ID (整数値)、ただし 処理可能な値は JGD2011 の平面直角座標系1系の 6669 から19系の 6687 までです。デフォルトは 6676 です。
- imagesize: 生成するテクスチャ画像の長辺ピクセル数 (整数値)。デフォルトは 512 です。
- method: テクスチャマッピングの手法を選択します。
デフォルトは "smart" です。
- "all": 全ての点群を全ての壁面に投影します。
- "nearest": 全ての点群を最寄りの壁面に投影します。
- "smart": 壁面ごとに自動的に計算されるしきい値よりも 近い点群を投影します。
- lod: 3D都市モデルの LoD (整数値)を指定します。 デフォルトは 1 です。
- limit: 点群の点の数の上限値を指定します。 アップロードされたファイルにこの値以上の点が含まれて いる場合は、指定された値までダウンサンプリングします。 値は整数値、または "k", "m" を付けた文字列で指定します。 "100k" は10万を意味します。
- ファイルパート
サンプル
(バイナリデータのため省略)
- エンドポイント:
レスポンス
HTTP Status Code: 200 (Success)
Content-type: "application/zip"
書式: Zip ファイル
- 推奨ファイル名は Content-Disposition ヘッダの ”attachment; filename" に記載されますが、任意です。
- Zip ファイルには"coordinates" には以下のファイルが含まれます。
{bldid}_lod{lod}_{method}_{点の数}.obj
: 3D都市モデルの頂点座標や辺、面を構成する集合、 各面に割り当てるリソース名などを含みます。{bldid}_lod{lod}_{method}_{点の数}.mtl
: リソース名に対応する画像ファイル名などの情報を含みます。{bldid}_lod{lod}_{method}_{点の数}_{壁面番号}.png
: 壁面のテクスチャ画像です。no_texture.png
: テクスチャ情報が存在しない場合の画像です。
サンプル
(バイナリデータのため省略)
補足:カバー率の計算 "num_points_in_region", "num_points_near_wall" は 1m グリッドにダウンサンプリングした点を数えているため、 建物表面上を点群がカバーしているおおよその面積を表します。
上記の例の最初のポリゴンでは、 "num_points_near_wall" が 485, "area" が 1237.93 なので、建物表面全体の約 39% (485 / 1237.94 = 0.3934) を点群がカバーしていると計算できます。
HTTP Status Code: 400 (Bad Request)
- 対応していないファイルフォーマットの場合。