deck.glでポイントクラウドを表示する

この記事はdeck.gl Advent Calendar 2021 参加記事です。

概要

最近では、点群データをスキャンできるEveryPointなどのアプリが注目を集めていますが、deck.glを使うとこれらのアプリで撮影したply形式のデータを読み込んでサクッとポイントクラウドとして表示することができます。

また、ローダーを変更することで同様のコードで las/lazデータ のポイントクラウドも表示することができます。

なお、deck.glはポイントクラウド(点群)ではない通常の3Dモデルも表示することができるのですが、それはまた別途記事にします。

サンプルコード

表示しているモデルはiPhoneでてきとうに撮影した駅の自販機です。(スマホだと初回はデータを読み込んでから表示されるまでにちょっと時間がかかります)

解説

loaders.glPLYLoaderを使ってデータを読み込み、そのデータをPointCloudLayerに渡してポイントクラウドを表示します。

deck.glにOrbitViewを指定し、オブジェクトを中心にカメラが回転するように表示します。

レイヤー側ではplyデータの座標に合わせて、coordinateSystemプロパティで直交座標系(CARTESIAN)を指定します。

las/lazデータのポイントクラウドデータを読み込みたい場合はloaders.glのLASLoaderを利用してください。