Show / Hide Table of Contents

このページでは WebAPI の仕様を説明します。

  • 2D 建物マッチング機能
  • 3D 点群マッチング機能
  • 3D テクスチャマッピング機能

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)

        • 対応していないファイルフォーマットの場合。
In This Article
Back to top Generated by DocFX