2022年3月31日木曜日

Tiling Point Clouds (las)

Cesium ion を利用せず、CesiumJS で las を取り込みたい。座標変換で位置も合わせたい。何かないでしょうか?

検索したら、引っ掛かりました。
https://stackoverflow.com/questions/67199138/how-to-convert-las-file-to-3d-tiles-so-it-can-render-by-cesium-not-use-cesium-io

試したところ、gocesiumtiler だけが Win10 でも動作しました。
https://github.com/mfbonfigli/gocesiumtiler

Go言語ですが、ビルドするだけなので特別な知識は必要なし。インストール後にプロンプトから go build を打つだけです。作者に感謝!

変換コマンドも1行で簡単。先の静岡の点群データに対しては以下の通り。

./gocesiumtiler -i ./input -o ./output -e 2450 -maxpts 100000 -z 2.5 -geoid -folder -recursive
-e は 変換元のEPSG コードの指定を意味し、続く 2450 が JGD2000 8系のコードです。JGD2011 は含まれていませんでした。追加方法を後日探りましょう。
-z は 高さの補正。そのままでは2mほど埋まったので、2.5m高くしました。地形の入れ替えも探らないと。

できたタイルを Cesium に追加。
const tileset0 = new Cesium.Cesium3DTileset({
  url: "./output/08OF6123/tileset.json",
});
viewer.scene.primitives.add(tileset0);
これで表示されました。簡単です。
タイルにしても詳細を表示させるにはやや重いのですが、許容範囲。点群 viewer としてWebGIS を利用できるようになったのは一歩前進です。

0 件のコメント:

コメントを投稿