Cesium通过shp矢量建筑数据生成白模

获取城市三维模型的方式

方式一:通过摄影自动建模,适用于中等数据量,可以做到以大面积城市地貌为主的建模;

方式二:传统手工建模,适用小数据量的场景

方式三:激光点云数据建模,适用于大数据量,多用于道路等带状地形及其建筑的可见立面建模;

方式四:参数化批量建模,适用小数据量的场景,主要用于参数化批量建模。

3D Tiles白膜

3D Tiles 是用于大型场景的三维模型。3D Tiles 是一个开放规范,用于传输海量异构三维地理空间数据集。使用概念上类似于 terrain 和 imagery 的瓦片流技术,3D Tiles 使得建筑物数据集、BIM模型、点云和摄影测量模型等大模型比较流畅的在 Web 端进行浏览展示。

如果shp矢量建筑物数据中包含楼层属性信息,就可以通过工具将其转为三维立体的白膜建筑物 3DTiles 模型。

包含楼层信息shp矢量建筑物数据或3D Tiles数据一般由项目相关的业务部门提供,或通过图商采购二维建筑物的平面 Polygon 面数据,也可以通过一些爬虫工具,如水经微图太乐地图等下载百度和高德的建筑物 shp 矢量数据。

Ceisum加载三维白模

Ceisum加载白模的方式有两种:

方法一:将shp格式转换为geojson格式,然后用cesium加载;此方式在面对大场景时,数据量较大时,非常容易卡死、崩溃;

方法二:将shp转换为3dtiles,然后加载到ceiusm中;3dtiles是ceisum为了解决大场景问题专门提供的一种数据格式,推荐使用

shp转为3dtiles的工具很多,常见的有:cesiumLab3dtiles等;

下载矢量数据的方法

https://zhuanlan.zhihu.com/p/453816932

通过shp矢量建筑数据生成建筑三维白模

1. 通过QGis查看建筑物shp矢量数据,确认矢量数据中包含建筑物楼层信息,即Floor字段:


2. 使用 Cesiumlab 工具切片矢量数据

a. 选择shp数据

b. 设置建筑物高度,1表示建筑物保持原始的1倍高度(如果为了在地图上突显建筑物,可以设为2倍、3倍等更高倍数,以拉伸建筑物的高度)

c. 存储类型设置为“散列”

修改3D Title白模样式

建筑物在地图上通过3D Tiles以三维模型的方式呈现时,该三维模型通常被称为白模;修改白模样式就是修改建筑物的样式。

修改白模样式的原理就是修改白模本身的特征属性,白模的特征属性一般有id、name、height等,但有些白模因为某些原因没有某些特征属性,例如:白模没有height属性,就无法获取到其高度。通过修改Cesium地图场景中的灯光、底图等可以让白模动态产生阴影并呈现更为复杂的效果。

参考资料:

https://blog.51cto.com/u_11184490/5103901

https://juejin.cn/post/7121516674653618183

部署3D Tiles白模数据

Ngiinx、Tomcat等静态资源服务器均可发布;

举报

© 著作权归作者所有


1