概要
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
5. Cesium Terrain ServerでTerrain配信
[cesium-terrain-server](https://hub.docker.com/r/geodata/cesium-terrain-server/) のDocker imageを取得してコンテナを起動し、`cesium-terrain-server` コマンドでterrainを配信します。
```bash
# コマンド例
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'
}),
7. ブラウザで閲覧
作成したViewerをブラウザで閲覧します。
今回作成した地形のサンプルは以下のURLで閲覧可能です。
(鎌倉・江ノ島周辺のみTerrain生成済みです)
[Cesium terrain examples](http://ec2-13-112-56-3.ap-northeast-1.compute.amazonaws.com/terrain_viewer/)
以上です。