PLATEAU GIS Converterは、国土交通省主導の日本全国3D都市モデル化プロジェクト「PLATEAU」のデータを様々なデータ形式に変換するオープンソースソフトウェアです。本トークでは、以下の点について詳しく解説します。
- プロジェクトの背景と目的
- PLATEAUプロジェクトの概要
- 日本の3D都市データの作成とそのユースケースの実装を行うプロジェクト
- ただの3Dデータではなく、現実世界の情報を反映させた「地理空間情報」
- 防災シミュレーションから、AR・VRや映像、ゲームなどのエンタメ分野まで幅広く活用される
- データ変換ツールの必要性
- 「都市機能を記述する」という目的から、仕様書は膨大になり、かつファイルサイズも巨大なものになる
- 複雑な仕様を持つXML形式のため、一般ユーザーはそのままの利用が難しい
- 変換には高価な有償ツールを利用する必要があった
- Rustを選択した理由
- 大規模データ処理におけるパフォーマンスの重要性
- メモリ安全性とスレッド安全性の利点
- 「クロスプラットフォーム」アプリケーションを容易に作成でき、TypeScriptでUIを構築できる「Tauri」の存在
- 課題と解決策
- Rustに精通するメンバーはいなかったため、短期でのキャッチアップが必要
- 大部分のアルゴリズムをフルスクラッチで開発する必要がある
- GIS(地理空間情報)を取り扱うためのクレートは存在するが、3次元の情報も合わせて取り扱うクレートは存在しない
- XMLを解析するクレートは存在するが、CityGMLを解析するクレートは存在しない
- プロジェクトで特に重要な「3D Tiles」の最新仕様を網羅したクレートも存在しない
- テクスチャ最適化(アトラス化)を行うクレートも、利用しやすいものは存在しない
- 技術的実装の詳細
- CityGML形式の解析と処理
- CityGMLのツリー構造を出力ファイル形式に応じて変換
- 地物(属性情報を持つ図形)の座標変換処理
- 多様な出力形式(GeoPackage、GeoJSON、MVT、3D Tilesなど)の実装
- テクスチャの最適化
- プロジェクトの成果と今後の展望
- 継続して開発中
- テクスチャの更なる最適化・高速化
- 巨大データダウンロード負荷の軽減
- 出力ファイル形式の追加
- RustでのGIS × 3D分野への貢献
本トークを通じて、地理空間情報(GIS)・3Dデータ処理の分野におけるRustの活用・有効性などを示すとともに、オープンソースプロジェクトとしての取り組みについても共有します。