1. 三角网获取
Cesium渲染地形时,以 QuadtreePrimitive 管理地形四叉树,四叉树的每一块瓦片用 QuadtreeTile 来实现。因此 QuadtreeTile 中存储了渲染地形所需的顶点信息和索引信息。
2. 获取需要的地形瓦片
通常进行土方量计算会给定一小块范围,并且只针对这一小块范围进行计算。因此,事实上我们并不需要知道所有地形瓦片的三角面信息,只需要获取范围内的就可以了。
地形的三角面信息是以一个个地形瓦片 QuadtreeTile
为单位进行存储的,因此,我们需要先判断那些地形瓦片是我们需要的。
一个地形瓦片 QuadtreeTile
表示的范围可以用一个 Rectangle
表示,这是一个由经纬度定义的“矩形”范围。
因此我们可以先利用 Rectangle
来筛选出与给定范围相交的 QuadtreeTile
。
筛选方式如下(快速,但是不能完全保证获取的地形瓦片都是需要的):略。
3. 获取范围内的三角面
获取所有筛选出来的地形瓦片的三角面(根据顶点和索引链接成一个个三角面)
体验: