A proof of concept GUI and CLI tool for converting PLATEAU's 3D city models (CityGML) of Japan into various geospatial formats, including 3D Tiles, MVT, and GeoPackage.
本リポジトリでは、FY2023 の Project PLATEAU「都市デジタルツインの実現に向けた研究開発及び実証調査業務」(内閣府/研究開発とSociety5.0との橋渡しプログラム(BRIDGE))において開発された「PLATEAU GIS Converter」のソースコードを公開しています。
PLATEAU GIS Converter は、PLATEAUが提供するCityGML形式の3D都市モデルを他の一般的なGISデータ形式に変換するソフトウェアです。
東京都23区の CityGML (v2) を読み込んで、3D Tiles に変換した例:
ソフトウェアのメイン画面:
PLATEAU の標準仕様に準拠した CityGML 2.0 形式の3D都市モデルは、専門のGISツールやCLIコマンドを用いて他のGIS形式に変換して用いられることが一般的ですが、一般ユーザーが簡易に利用できる汎用ツールは存在しません。そのため、流通や活用の範囲が専門家や技術者に限られていました。
「PLATEAU GIS Converter」を利用することで、3D都市モデルを一般的なGIS形式に変換して、様々な分析・開発を行うことができます:
本ソフトウェアの機能は以下の通りです:
利用技術は以下の通りです。
内部ロジック:
ユーザインタフェース (UI):
本ソフトウェアは以下の環境で動作することを想定しています:
nusamai-citygml
— CityGML パーサ実装支援ライブラリmacros
— パーサ導出用の proc macrosnusamai-plateau
— PLATEAU 用の CityGML モデルおよびパーサnusamai-projection
— 投影法変換nusamai-gpkg
— GeoPackagenusamai-gltf
— glTFnusamai-geojson
— GeoJSONnusamai-kml
— KMLnusamai-czml
— CZMLnusamai-shapefile
— Shapefilecd ./nusamai/
# Debug (非常に低速)
cargo run -- ~/path/to/PLATEAU/15100_niigata-shi_2022_citygml_1_op/udx/bldg/*.gml --sink geojson --output foobar.geojson
# Release (最適化コンパイル)
cargo run --release -- ~/path/to/PLATEAU/15100_niigata-shi_2022_citygml_1_op/udx/bldg/*.gml --sink geojson --output foobar.geojson
# Release (LTO有効のプロダクションビルド、最高速)
cargo run --profile release-lto -- ~/path/to/PLATEAU/15100_niigata-shi_2022_citygml_1_op/udx/bldg/*.gml --sink geojson --output foobar.geojson
Dev:
cd ./app/
npm install
RUST_BACKTRACE=1 npx tauri dev
Build:
cd ./app
npx tauri build
cargo clippy --all-targets --all-features
cargo test --workspace --exclude app --all-features
Codecov: https://app.codecov.io/gh/MIERUNE/plateau-gis-converter
cargo llvm-cov --workspace --exclude app --html --all-features