2017/11/11 Potreeの使い方
ネットで点群を見ることができるpotreeがバージョンアップしたのは知っていましたが、面倒なので前バージョンのまま使っていました。
新しいバージョンは日本語に対応しています。コンバーター(ネットにアップする前の変換ソフト)もスピードが速くなったような気がします。まだ使ったことがない方におススメです。
http://www.potree.org/
サンプル http://www.newspace.biz/x/x.html
*** potreeの使い方 ***(2017年11月現在)
https://github.com/potree/potree/releases
から、
Potree 1.5の「Source code(zip)」をダウンロードする(1)
https://github.com/potree/PotreeConverter/releases
から、
PotreeConverter 1.5の「PotreeConverter_1.5_windowe_x64.zip」をダウンロードする(2)
(1)を解凍し、サーバー上(例えば、http://サーバーURL/x/ )に、 libsフォルダごとアップロード
※libsフォルダは1回だけアップするだけで良い
同じフォルダ内に「pointclouds」フォルダ(空)を作成
「pointclouds」フォルダ の中に、データを入れるフォルダを作成(たとえば、「newdit」)
※以後、potree用のデータは「pointclouds」フォルダに入れることになる
以下に(ア)、(イ)の2つの方法で公開する方法を示す
(ア)PhotoScanで、potree専用ファイルを作成して、変換、アップロードする方法(非常に簡単)
・PhotoScanで、
ファイル→ポイントをエクスポート→ファイルの種類でpotree(.zip)を選択保存
dataフォルダとcloud.jsができる
・http://サーバーURL/x/pointclouds/newdit/ (「newdit」はこの説明の例)の中に、
PhotoScanで作成されたzipファイルの中の、dataフォルダとcloud.jsをアップロード
・1つ上の階層(http://サーバーURL/x/)に、html(例えば、newdit.html)を入れる (htmlの作成は【htmlの例】 に記した)
後は、 http://サーバーURL/x/newdit.html で見れるようになる
(イ)PhotoScanで、lasファイルを作成して、変換、アップロードする方法(面倒だが、いろんなタイプのデータを変換できる)
・(2)を解凍し、フォルダ C:\PotreeConverter1.5に
PotreeConverter_1.5_windowe_x64 の中身を入れる(PotreeConverter.exeがあるはず) ※この操作は初回だけで良い
・PhotoScan等で、
ファイル→ポイントをエクスポート→ファイルの種類でlasを選択保存
※変換するとき、平面直角座標系を設定することを忘れないように
・作成されたlasファイルを適当な場所に入れる(例えば、D:\newdit.las )
・DOS画面で以下のように進める
cd c:\potreeconverter1.5
PotreeConverter.exe D:\newdit.las -o D:\potree_converted -p newdit
※いちいちタイプするより上をコピペした方が楽である
(タイプ内容は、
C:\PotreeConverter1.5 の、PotreeConverter.exeを使って、
Dドライブに入れたb.lasファイルを、
同じDドライブの中のpotree_convertedフォルダにnewditというプロジェクト名で変換する
という意味である)
(オプション「-oや-p」の意味は、
C:\PotreeConverterの中で、PotreeConverter.exeとタイプすると表示される)
・Dドライブのpotree_convertedフォルダの中に、newdit.html、pointclouds、libsができる。
※libsは通常不要で、newdit.htmlとpointcloudsのみが必要
・newdit.htmlを
http://サーバーURL/x/ の中にアップロードする
・pointcloudsの中にある「newdit」フォルダごと
http://サーバーURL/x/pointclouds/ の中にアップロードする
以上で、
http:/サーバーURL/x/newdit.htmlで見れるようになる
【htmlの例 】
※newditはこの説明の例である
※「//」の後のコメントに注意
※最初から日本語になるようにjpに設定してある
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>Potree Viewer</title>
<link rel="stylesheet" type="text/css" href="libs/potree/potree.css">
<link rel="stylesheet" type="text/css" href="libs/jquery-ui/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="libs/perfect-scrollbar/css/perfect-scrollbar.css">
<link rel="stylesheet" href="libs/openlayers3/ol.css" type="text/css">
<link rel="stylesheet" href="libs/spectrum/spectrum.css" type="text/css">
</head>
<body>
<script src="libs/jquery/jquery-3.1.1.js"></script>
<script src="libs/spectrum/spectrum.js"></script>
<script src="libs/perfect-scrollbar/js/perfect-scrollbar.jquery.js"></script>
<script src="libs/jquery-ui/jquery-ui.min.js"></script>
<script src="libs/three.js/build/three.js"></script>
<script src="libs/other/stats.min.js"></script>
<script src="libs/other/BinaryHeap.js"></script>
<script src="libs/tween/tween.min.js"></script>
<script src="libs/d3/d3.js"></script>
<script src="libs/proj4/proj4.js"></script>
<script src="libs/openlayers3/ol.js"></script>
<script src="libs/i18next/i18next.js"></script>
<script src="libs/potree/potree.js"></script>
<script src="libs/plasio/js/laslaz.js"></script>
<script src="libs/plasio/vendor/bluebird.js"></script>
<div class="potree_container" style="position: absolute; width: 100%; height: 100%; left: 0px; top: 0px; ">
<div id="potree_render_area"></div>
<div id="potree_sidebar_container"> </div>
</div>
<script>
window.viewer = new Potree.Viewer(document.getElementById("potree_render_area"));
viewer.setEDLEnabled(true);
viewer.setFOV(60);
viewer.setPointBudget(1*1000*1000);
document.title = "";
viewer.setEDLEnabled(false);
viewer.setBackground("gradient"); // ["skybox", "gradient", "black", "white"];
viewer.setDescription(``);
viewer.loadSettingsFromURL();
viewer.loadGUI(() => {
viewer.setLanguage('jp');
$("#menu_tools").next().show();
//viewer.toggleSidebar();
});
Potree.loadPointCloud("pointclouds/newdit/cloud.js", "newdit", e => {
let pointcloud = e.pointcloud;
let material = pointcloud.material;
viewer.scene.addPointCloud(pointcloud);
material.pointColorType = Potree.PointColorType.RGB; // any Potree.PointColorType.XXXX
material.size = 1;
material.pointSizeType = Potree.PointSizeType.ADAPTIVE;
material.shape = Potree.PointShape.SQUARE;
viewer.fitToScreen();
});
</script>
</body>
</html>
|