Cesium中获取地形三角网并进行土方计算

发布时间 2023-07-09 19:46:40作者: 2086nmj

参考:https://www.liaomz.top/2022/11/30/cesium-zhong-huo-qu-di-xing-san-jiao-wang-bing-jin-xing-tu-fang-ji-suan/

1. 三角网获取

Cesium渲染地形时,以 QuadtreePrimitive 管理地形四叉树,四叉树的每一块瓦片用 QuadtreeTile 来实现。因此 QuadtreeTile 中存储了渲染地形所需的顶点信息和索引信息。

2. 获取需要的地形瓦片

通常进行土方量计算会给定一小块范围,并且只针对这一小块范围进行计算。因此,事实上我们并不需要知道所有地形瓦片的三角面信息,只需要获取范围内的就可以了。

地形的三角面信息是以一个个地形瓦片 QuadtreeTile 为单位进行存储的,因此,我们需要先判断那些地形瓦片是我们需要的。

一个地形瓦片 QuadtreeTile 表示的范围可以用一个 Rectangle 表示,这是一个由经纬度定义的“矩形”范围。

因此我们可以先利用 Rectangle 来筛选出与给定范围相交的 QuadtreeTile 。

筛选方式如下(快速,但是不能完全保证获取的地形瓦片都是需要的):略。

3. 获取范围内的三角面

获取所有筛选出来的地形瓦片的三角面(根据顶点和索引链接成一个个三角面)

体验: