本システムと3D都市モデルCityGML LOD1 GeoJSON変換・加工ツールを利用することで東京都各区のCityGMLをデータベースに格納後、GeoJSONを読み込んで利用した例
| 更新日時 | リリース | 更新内容 |
|---|---|---|
| 2026/3/20 | 1st Release | 初版リリース |
本リポジトリでは、Project PLATEAUの令和7年度の民間サービス実装タイプである「建築計画ボリューム可視化事業」について、その成果物の一部である3D都市モデルと国土地理院の標高タイルをGeoJSON形式へ事前に変換したものを、API配信する「都市空間GeoJSONデータAPI配信システム」のソースコードを公開しています。
「都市空間GeoJSONデータAPI配信システム」は、建物・道路・用途地域などの都市空間データをGeoJSON形式で取得できるDB関数およびHTTP 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ページを参照してください。
本システムの構築手順及び利用手順については利用チュートリアルを参照してください。
- PLATEAU CityGMLから変換されたGeoJSONデータを、
ogr2ogr等を用いてPostgreSQL + PostGISにインポートします。 - 建物、道路、用途地域、防火地域、高度地区、土地利用などのレイヤを、それぞれ専用のテーブルとして格納します。
develop/migrations配下のSQLファイルを自動的に順番に適用し、テーブル定義とDB関数定義(pick_by_point_as_geojsonなど)をセットアップします。- マイグレーションの実行・検証は
docker compose run --rm migrateおよびverify-migrationsスクリプトにより行います。
- 指定座標や矩形・ポリゴンを引数とし、該当範囲の地物をGeoJSON(FeatureCollection)として返すSQL関数群を提供します。
- 主な関数には以下が含まれます。
pick_by_point_as_geojsonclip_by_rect_as_geojsonclip_by_rect_as_geojson_with_trimclip_by_polygon_as_geojson_with_trim
- 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
- DEM5A GeoJSONタイルをもとに、指定範囲の標高情報をGeoJSON形式で返す
/elevationTilesエンドポイントを提供します。 - タイルパス構成
{DEM5A_BASE_DIR}/{zoom}/{x}/{y}.geojsonに基づいてデータを読み込みます。
| 種別 | 名称 | バージョン(例) | 内容 |
|---|---|---|---|
| ミドルウェア | 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 |
| 項目 | 最小動作環境 | 推奨動作環境 |
|---|---|---|
| OS | Microsoft Windows 10 または 11 / macOS | 同左 |
| CPU | Intel Core i3相当以上 | Intel Core i5以上 |
| メモリ | 4GB以上 | 8GB以上 |
| ディスク容量 | 数GB以上(GeoJSONデータおよびDBデータ量に依存) | 十数GB以上 |
| ネットワーク | Dockerイメージ取得および必要に応じて地理院タイル等へアクセス可能なインターネット環境 | 同左 |
| フォルダ名 / パス | 詳細 |
|---|---|
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 など) |
- ソースコード及び関連ドキュメントの著作権は株式会社くわやに帰属します。
- 本ドキュメントはProject PLATEAUのサイトポリシー(CCBY4.0及び政府標準利用規約2.0)に従い提供されています。
- 本リポジトリは参考資料として提供しているものです。動作保証は行っていません。
- 本リポジトリについては予告なく変更又は削除をする可能性があります。
- 本リポジトリの利用により生じた損失及び損害等について、国土交通省はいかなる責任も負わないものとします。
- PLATEAU WebサイトのUse caseページ「建築計画ボリューム可視化」: [https://www.mlit.go.jp/plateau/use-case/bz25-04/]