概要
Cesiumの デフォルトの地形 は解像度が(たぶん)30m程度のため、地上に立った視点で眺めると 細かい地形の起伏が潰れて しまっています。
また 地理院地図Globe では国土地理院の5m DEMを使用しているので細かい地形の起伏は残っているのですが、斜面が階段状 になってしまっています。
そこで、地形の起伏は残っている+斜面も滑らかになる状態を目標に Cesium Terrain Builderで生成したTerrain を試してみました。
その作業メモです。
作業環境と使用ツール
OS: mac OS Sierra
Tool:
作業手順
DEMの取得
基盤地図情報 ダウンロードサービス のページの「数値標高モデル」から、取得したい範囲のDEMをダウンロードします。DEMをGeoTIFFに変換
fgddem.py を使用して、DEMをGeoTiffに変換します。GeoTIFFのマージ (option)
生成したい地形が複数のGeoTIFFにまたがる時は、GDALのgdal_merge.py
コマンドでGeoTIFFをマージします。-
Cesium Terrain BuilderでTerrain生成
cesium-terrain-builder のDocker imageを取得してコンテナを起動し、ctb-tile コマンドでterrainを生成します。# コマンド例 docker pull homme/cesium-terrain-builder docker run -it -v $(pwd):/root homme/cesium-terrain-builder /bin/bash cd root ctb-tile --output-dir ./tileset/terrain/newone dem_whole.tif
-
Cesium Terrain ServerでTerrain配信
cesium-terrain-server のDocker imageを取得してコンテナを起動し、cesium-terrain-server
コマンドでterrainを配信します。# コマンド例 docker pull geodata/cesium-terrain-server docker run -it -v $(pwd):/root -p 8080:8080 geodata/cesium-terrain-server /bin/bash cd /root cesium-terrain-server -dir tilesets/terrain -port 8080 -web-dir tilesets/terrain
-
Cesiumを使ったViewerをJavascriptで作成
JavascriptでCesiumを使ったViewerを作成し、ブラウザで閲覧します。
上の4, 5の手順のようにTerrain生成・配信をした場合の、対応する CesiumTerrainProviderの記述は以下のようになります。CesiumTerrainProviderの記述例: terrainProvider: new Cesium.CesiumTerrainProvider({ url: 'http://localhost:8080/tilesets/newone' }),
ブラウザで閲覧
作成したViewerをブラウザで閲覧します。
今回作成した地形のサンプルは以下のURLで閲覧可能です。
(鎌倉・江ノ島周辺のみTerrain生成済みです)
以上です。