Skip to content

Project-PLATEAU/GeoJSON-DataAPI-for-Building-Volume

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

都市空間GeoJSONデータAPI配信システム

概要 本システムと3D都市モデルCityGML LOD1 GeoJSON変換・加工ツールを利用することで東京都各区のCityGMLをデータベースに格納後、GeoJSONを読み込んで利用した例

更新履歴

更新日時 リリース 更新内容
2026/3/20 1st Release 初版リリース

1. 概要

本リポジトリでは、Project PLATEAUの令和7年度の民間サービス実装タイプである「建築計画ボリューム可視化事業」について、その成果物の一部である3D都市モデルと国土地理院の標高タイルをGeoJSON形式へ事前に変換したものを、API配信する「都市空間GeoJSONデータAPI配信システム」のソースコードを公開しています。

「都市空間GeoJSONデータAPI配信システム」は、建物・道路・用途地域などの都市空間データをGeoJSON形式で取得できるDB関数およびHTTP APIサーバーを備え、他システムからの空間検索やクリッピング処理を支援します。

2. 「GeoJSONデータAPI配信システム」について

「GeoJSONデータAPI配信システム」は、3D都市モデルを活用した都市計画・まちづくり業務で幅広く利活用できるよう、CityGML形式のデータをPostgreSQL + PostGISに格納し、汎用的なGeoJSON形式で取得するための基盤として開発されました。 本システムは、都市空間データをPostGIS上に統合的に格納し、SQLレベルで柔軟な空間検索を行えるほか、指定座標・矩形・ポリゴンによるクリッピング結果をGeoJSON形式で簡便に取得できるDB関数群を提供、これらのDB関数をHTTP APIサーバー(Express.js)経由で利用でき外部システムからの連携を容易にし、任意でDEM5A(標高タイル)GeoJSONを用意することで、標高タイルAPI(/elevationTiles)も利用可能としています。 本システムは別ツールの3D都市モデルCityGML LOD1 GeoJSON変換・加工ツールを利用することで、効率よくセットアップすることが可能なシステムとして開発されています。 本システムを利用したユースケースについてはUse Caseページを参照してください。

3. 利用手順

本システムの構築手順及び利用手順については利用チュートリアルを参照してください。

4. システム概要

【DB構築・データインポート】

① GeoJSONデータのインポート機能

  • PLATEAU CityGMLから変換されたGeoJSONデータを、ogr2ogr 等を用いてPostgreSQL + PostGISにインポートします。
  • 建物、道路、用途地域、防火地域、高度地区、土地利用などのレイヤを、それぞれ専用のテーブルとして格納します。

② マイグレーション機能

  • develop/migrations 配下のSQLファイルを自動的に順番に適用し、テーブル定義とDB関数定義(pick_by_point_as_geojson など)をセットアップします。
  • マイグレーションの実行・検証は docker compose run --rm migrate および verify-migrations スクリプトにより行います。

【GeoJSON API(DB関数・HTTP API)】

③ DB関数によるGeoJSON取得機能

  • 指定座標や矩形・ポリゴンを引数とし、該当範囲の地物をGeoJSON(FeatureCollection)として返すSQL関数群を提供します。
  • 主な関数には以下が含まれます。
    • pick_by_point_as_geojson
    • clip_by_rect_as_geojson
    • clip_by_rect_as_geojson_with_trim
    • clip_by_polygon_as_geojson_with_trim

④ HTTP APIサーバー機能

  • Express.jsベースのHTTPサーバー(develop/api)により、DB関数をHTTPエンドポイントとして公開します。
  • 主なエンドポイントは以下のとおりです。
    • /geojson/pick-by-point
    • /geojson/clip-by-rect
    • /geojson/clip-by-rect-with-trim
    • /geojson/clip-by-polygon-with-trim

【標高タイルAPI】

⑤ elevationTiles API機能

  • DEM5A GeoJSONタイルをもとに、指定範囲の標高情報をGeoJSON形式で返す /elevationTiles エンドポイントを提供します。
  • タイルパス構成 {DEM5A_BASE_DIR}/{zoom}/{x}/{y}.geojson に基づいてデータを読み込みます。

5. 利用技術

種別 名称 バージョン(例) 内容
ミドルウェア Docker Desktop / Docker Compose - PostgreSQL + PostGISコンテナの管理
Docker Desktop: Terms of Service / Docker Compose: Apache-2.0
PostgreSQL 17 空間データを格納するリレーショナルデータベース
PostgreSQL License
PostGIS 3.4 PostgreSQL向け地理空間拡張
GPL v2+
ランタイム Node.js 18.x 推奨 HTTP APIサーバーおよびテストスクリプトの実行環境
MIT License
ライブラリ GDAL/OGR - GeoJSONデータのDBインポート
MIT License
Express.js 4.18.2 HTTP APIサーバー実装
MIT License
node-postgres (pg) 8.11.3 Node.jsからPostgreSQLへ接続するためのライブラリ
MIT License

6. 動作環境

項目 最小動作環境 推奨動作環境
OS Microsoft Windows 10 または 11 / macOS 同左
CPU Intel Core i3相当以上 Intel Core i5以上
メモリ 4GB以上 8GB以上
ディスク容量 数GB以上(GeoJSONデータおよびDBデータ量に依存) 十数GB以上
ネットワーク Dockerイメージ取得および必要に応じて地理院タイル等へアクセス可能なインターネット環境 同左

7. 本リポジトリのフォルダ構成

フォルダ名 / パス 詳細
api Express.jsベースのGeoJSON Data APIサーバー実装およびテストコード
data/dem5a DEM5A標高タイルGeoJSONデータの配置先(デフォルト)
data/geojson インポート対象となるCityGML変換済みGeoJSONデータを配置するディレクトリ
db/backups PostgreSQLデータベースのバックアップSQLファイルを保存するディレクトリ
db/migrations テーブル定義・DB関数定義のSQLマイグレーションファイル
docker PostgreSQL + PostGISコンテナ用の docker-compose.yml および各種シェルスクリプト
scripts npm run setup から呼び出される統合スクリプト(run-all.js など)

8. ライセンス

  • ソースコード及び関連ドキュメントの著作権は株式会社くわやに帰属します。
  • 本ドキュメントはProject PLATEAUのサイトポリシー(CCBY4.0及び政府標準利用規約2.0)に従い提供されています。

9. 注意事項

  • 本リポジトリは参考資料として提供しているものです。動作保証は行っていません。
  • 本リポジトリについては予告なく変更又は削除をする可能性があります。
  • 本リポジトリの利用により生じた損失及び損害等について、国土交通省はいかなる責任も負わないものとします。

10. 参考資料

About

3D都市モデルがもつCityGML形式の属性情報からGeoJSON形式に変換されたデータを取得するためのAPI

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors