1
3

More than 5 years have passed since last update.

quantized-mesh-1.0 terrain format の研究

Last updated at Posted at 2014-08-15

三次元地理空間情報がウェブに乗らなければならない、とは言っても、三次元地理空間情報には、ざっと挙げても、次のようなさまざまな種類がある。

  • DEM data
  • CAD data
  • point cloud
  • triangle mesh (polygon mesh, with or without texture)

ここは分割統治法を適用するべきである。また、ウェブ上に実装がある技術のみをまずは狙うべきである。

このエントリでは、三角形メッシュデータ triangular mesh data のウェブ用フォーマットとして、下記 URL で紹介されている quantized-mesh-1.0 terrain format について研究する。

原典

座標系及びタイル分割方法

OSGeo TMS の global-geodetic 方式で四分木分割する。地球儀を相手にしなければならない一方、いずれにせよ座標変換をしなければならないので、そのままレンダリングできるウェブメルカトルではなく、極までカバーする global-geodetic 座標系を採用したことは合理的であろう。

タイル命名方法

OSGeo TMS に準拠しているので、TMS 方式の命名方法に従う。すなわち、y軸は南から北に上がるタイプであり、XYZ とは逆になる。いずれにせよ、そもそも座標系が global-geodetic であることから、XYZ と混ぜて使っても混乱は少ないと思う。

タイルコンテンツの形式

little endian のバイナリデータが gzip 圧縮されたものであるという。メッシュデータを格納するための座標の表現には、データ量を少なくするためにジグザグエンコーディングが使われているという。
ジグザグエンコーディングは、TopoJSON や MVT (mapbox/mapnik vector tile) でも使われていたと思う。
座標値は0〜32767に正規化されている(unsigned short)。これも MVT などで散見される手法である。絶対座標ではなくて、タイル内座標を使う。タイル名側にジオリファレンス情報が入っているので、絶対座標を使うことは非効率であるだけでなく、直交性を損なう。なので、タイル内座標を使うのは非常に合理的であると思う。
Content-Type としては application/vnd.quantized-mesh,application/octet-stream という。

関係するフォーマット

heightmap-1.0 というフォーマットもある。こちらはメッシュではなくてラスタ的なフォーマットであるように見える。
https://cesiumjs.org/data-and-assets/terrain/formats/heightmap-1.0.html

1
3
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
1
3