対象者
Cesium JSやRe:Earth等のWeb GIS でPLATEAUの3D都市モデル(3D Tiles)を表示する際に、地面とPLATEAUデータが接地しない問題に直面した方向けの記事となっています。
PLATEAUのデータが浮く理由
PLATEAUの3D都市モデルは東京湾平均海面を基準とする標高に基づいてデータが作成されています。そのため、Web GISでPLATEUデータを扱う場合は、地形(Terrain)も3D化する必要があります。 下図のように地形を2Dの状態にしたままにすると建物が浮いて表示されます。
地形を3D化しても建物とうまく接地しない
Cesiumが提供するCesium World Terrainを利用(Re:EarthでTerrainを有効化した場合デフォルトではCesium World Terrainが利用されます)しているにもかかわらず、建物が地面にめり込んでいる、うまく接地しない場合があります。
これは、Cesium World Terrainの精度が起因となり発生します。
Cesium公式サイトには地域毎の地形データの精度が記載されています。Cesium World Terrainが提供する日本の地域における地形データの分解能が粗いために、うまくPLATEAUのデータとマッチしないということが発生します。
より高精度な地形データを利用することで、この問題を解消することができます。
PLATEAUでは国土地理院が整備した基盤地図情報数値標高モデル5mメッシュに基づいて、作成された地形データ(PLATEAU-Terrain)が提供されています。PLATEAU-Terrainを地形データとして用いることで、Cesium World Terrainより精度の高い地形データを利用してPLATEAUの3D都市モデルを表示することができます。
PLATEAU-Terrainを利用する方法
PLATEAUからPLATEAU-Terrainを利用するための、アクセストークンおよびアセットIDが提供されています。これをCesium JSもしくはRe:Earthに入力することで、PLATEAU-Terrainを有効化することができます。アクセストークンとアセットIDは以下のURLから確認いただけます。(試験験運用であるため、提供期間やサービスレベルについては保証されていないとのこと)
加えて、Cesium公式からもJapan Regional Terrainとして、日本の高精度の地形データが配信されています。ご自身でCesium ionにサインインいただき、Japan Regional Terrainをアセットに追加することでも利用することができます。
PLATEAU-TerrainのreadmeにCesium JSの実装例は記述されていますので、本記事ではRe:EarthにおけるPLATEAU-Terrainの有効化の方法を解説します。(今後、Re:EarthのアップデートによりUIが変更される場合があります)。
Re:Earth編集画面からScene > Terrain を選択し、"Terrain type"をクリックします。
"Terrain type"を"Cesium ion"に変更します。すると下記のようなUIに変わるので、PLATEAU-Terrainのreadmeに記載されているアセットIDとアクセストークンを入力します。
PLATEAU-Terrainを有効化することで、建物が接地されるようになります。
参考資料:
国土交通省 「TOPIC 3|3D都市モデルデータの基本[4/4]|CityGMLの座標・高さとデータ変換」: https://www.mlit.go.jp/plateau/learning/tpc03-4/
Cesium GS, Inc「Cesium World Terrain」: https://cesium.com/platform/cesium-ion/content/cesium-world-terrain/