セシウム地形サービス(Cesium Terrain Service)
GISBoxは、OSGB/GEOTIFF/RVT などの複数の GIS フォーマットでの編集をサポートし、3DTiles/Terrain への変換や公開が可能なワンストップ 3DGIS データ編集、変換、公開プラットフォームです。
概要
Cesium Terrain Service(セシウム・テレイン・サービス)は、Cesium.js 向けに設計されたサーバーであり、ファイルシステムベースの地形タイルセットを簡単に提供することができます。Cesium.js の CesiumTerrainProvider
クラスと連携して動作し、ブラウザ上で高精度な地形データのレンダリングを実現します。
このサービスはバイナリファイル構造を採用しており、Quantized Mesh(量子化メッシュ)技術を基盤としています。圧縮および量子化処理によってデータ容量を削減し、読み込みと描画のパフォーマンスを向上させます。また、ユーザーの視点に応じたオンデマンド型のデータ読み込みをサポートし、解像度の異なる地形スライスを動的にロードすることで、表示要求に柔軟に対応し、効率的な地形読み込みを実現します。
データフォーマットの概要
Cesium Terrain Service のファイル構造は、.terrain
バイナリファイルを中心に構成されており、主に以下のような要素が含まれます:
- ヘッダー:タイルの中心座標、最高・最低標高、外接球の範囲(描画最適化用)などの基本情報を格納。
- 頂点データ:地形メッシュの頂点座標と標高を含み、インクリメンタルエンコードおよび ZigZag 圧縮により容量を削減。
- インデックスデータ:頂点の接続関係を定義し、三角メッシュ構造を構成。16 ビットまたは 32 ビットのインデックス形式をサポートし、パディングおよびアライメント処理を実施。
- 追加データ(オプション):色、テクスチャ、属性情報など、地形の視覚化を強化する要素。
この構造は、大規模地形データを効率的に圧縮・階層化して保存・読み込むことにより、高速な描画とロードを実現します。
長所
- 高速な読み込み・描画:量子化グリッド技術により、データ容量を削減し、描画と読み込みのパフォーマンスを大幅に向上。大規模な地形データに最適。
- オンデマンド読み込み:視点に応じて必要な解像度の地形タイルのみを動的に読み込み、初期ロード時間やメモリ使用量を削減。
- マルチ解像度対応:近距離では高解像度、遠距離では低解像度を表示することで計算資源を節約。
- 柔軟な拡張性とデプロイ性:新しい地形タイルセットを簡単に追加可能。Docker コンテナを利用した一括起動にも対応し、開発やテストに便利。
- キャッシュ機構の統合:オプションで Memcached と連携し、高度なキャッシュ戦略によるデータアクセス高速化が可能。
短所
- 学習コストが高い:WebGL や 3D グラフィックスの基礎知識が求められるため、初心者には難易度が高い。
- 高いハードウェア要件:大規模地形データの処理には CPU やメモリ等のリソース消費が大きく、全ての環境に適しているわけではない。
- 編集機能の制限:地形データの表示・レンダリングに特化しており、モデルの編集機能は限定的で、複雑な操作には対応していない。
応用シーン
Cesium Terrain Service は、地形データのプロトタイプやアプリケーションの開発、地形データの視覚化、教育研究における地理情報システムの実験など、大規模な地形データの効率的な読み込みとレンダリングを必要とする 3D 地理情報システム (GIS) や仮想地球アプリケーションに適しています。
例
- セシウム地形サービス。

関連地図サービス
NASA Earthdata API
Cesium 3D Tiles
Google Earth Engine
HERE Maps API
参考
- https://community.cesium.com/t/terrain-service/19344
- https://github.com/geo-data/cesium-terrain-server
- https://community.cesium.com/t/cesium-terrain-server/715