LoginSignup
6
8

More than 5 years have passed since last update.

Cesium Terrain Builderの使い方メモ

Last updated at Posted at 2017-12-04

概要

Cesiumの デフォルトの地形 は解像度が(たぶん)30m程度のため、地上に立った視点で眺めると 細かい地形の起伏が潰れて しまっています。
また 地理院地図Globe では国土地理院の5m DEMを使用しているので細かい地形の起伏は残っているのですが、斜面が階段状 になってしまっています。
そこで、地形の起伏は残っている+斜面も滑らかになる状態を目標に Cesium Terrain Builderで生成したTerrain を試してみました。
その作業メモです。

作業環境と使用ツール

OS: mac OS Sierra
Tool:

作業手順

  1. DEMの取得
    基盤地図情報 ダウンロードサービス のページの「数値標高モデル」から、取得したい範囲のDEMをダウンロードします。

  2. DEMをGeoTIFFに変換
    fgddem.py を使用して、DEMをGeoTiffに変換します。

  3. GeoTIFFのマージ (option)
    生成したい地形が複数のGeoTIFFにまたがる時は、GDALの gdal_merge.py コマンドでGeoTIFFをマージします。

  4. 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 の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
    
  6. 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

以上です。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8