cesium实现建筑物单体化(分栋分层)
https://blog.csdn.net/qq_27816785/article/details/123236815
对于一个建筑物实现单体化需求:
1. 首先有其3dtiles模型,加载到场景中;
2. 在GIS软件中,创建一个面图层勾勒建筑物矢量轮廓(一个轮廓称为一个要素)
2.1 如使用ArcGIS或者QGIS打开对应的影像图,进行勾勒绘制
2.2 如果分层单体化,要素中需要增加层高、楼高等属性(用于在cesium中绘制指定高度和位置的box)
2.3 如果有条件,可以直接用能加载osgb的软件,直接勾勒三维轮廓

3. 将绘制的面图层(包含所有需要单体化的建筑要素),发布成可查询的地图服务
3.1 不会写后端代码的,使用geoserver服务器发布wfs服务。
3.2 会写后端代码的,使用postgis数据库结合后端代码实现查询服务。
4. 在场景中单击目标,获取目标点经纬度,通过第二步的服务查询要素信息,在场景中构造带有classificationType的entity或者primitive
参考官方示例:[Classification - Cesium Sandcastle](https://sandcastle.cesium.com/index.html?src=Classification.html "Classification - Cesium Sandcastle")

5. 将entity或者primitives添加到场景中,即可实现单体化;

6. 通过设置 viewer.scene.invertClassification = true,也可以实现遮罩效果;


本人亲测实现流程,可以满足建筑物分栋分层单体化。
如果你对其中的步骤有疑问,请留言,我再补充细节。
本文转自 https://blog.csdn.net/qq_27816785/article/details/123236815,如有侵权,请联系删除。