最近的项目用到了点云相关的东西,要求把点云数据加载到web端,这边主要通过两种方式测试了下点云数据的加载。
1、通过cesiumlab进行切片,然后用cesium加载切片数据;
2、通过py3dtiles进行切片,然后用mapbox加载切片数据;
本文主要讲述第二种方式。py3dtiles在windows上配置环境有麻烦,于是在虚拟机中装了个ubuntu来测试,测试成功。
一、Ubuntu系统安装
参考:https://blog.csdn.net/davidhzq/article/details/102575343
下载地址:http://mirrors.163.com/ubuntu-releases/
二、 py3dtiles安装
参考:https://github.com/Oslandia/py3dtiles/blob/master/docs/install.rst
$ sudo apt install git python3 python3-pip virtualenv libopenblas-base liblas-c3 (预估安装时间1天)
$ git clone https://github.com/Oslandia/py3dtiles
$ cd py3dtiles
$ virtualenv -p /usr/bin/python3 venv
$ . venv/bin/activate
(venv)$ pip install -e .
可能会报错,参考:https://blog.csdn.net/qq_42318288/article/details/105768263
Python3.5对应的vmlilte的版本应该是llvmlite-0.31.0
pip install llvmlite==0.31.0
然后再 pip install –e .
最后 (venv)$ python setup.py install
三、 生成切片
py3dtiles convert --srs_in 4326 --srs_out 3857 --out venv/tiles venv/nj.las
四、 mapbox加载点云切片
let testLayer = new Mapbox3DTiles.Layer({
id: 'ahn',
url: './tiles/tileset.json',
// color: 0x007722,
opacity: 1.0,
pointsize: 3
});
map.addLayer(testLayer);
后面有空的时候讲下点云数据的读取和建议处理。