背景:
由于项目需求.skyline本身的开挖并不能满足日常计算,所以这里需要自己重新开发: 主要包括挖方和填方的计算. 需要用到的工具是GDAL,并自己将tif图像的数据,转成具体的经纬度数据.
1.有了上述准备之后(主要是Tif数据处理), 接下来我们准备Dem数据,我们使用skyline本身一些函数,通过一个子线程,将通过鼠标选取的区域,和tif规定的区域求交之后. 将这部分相同的区域的原始dem数据获取(注意skyline本身获取数据的时候,通常放在UI线程中,不然其效率很低.这是一个坑);
2.这部分是将鼠标区域和tif区域,求交之后的二维结果图
3.计算
这部分注意,也是通过tif和dem两部分数据, 选取水平面为基准面,构建不规则三棱柱体.累加三棱柱体积(计算的时候,两部分是有+-体积,),做对应相同符号的累加,即可计算出填挖方.
注意.这里面如果按四面体构建拟柱体的话,在两部分底层相交的时候,需要重写切割成三棱柱.否则计算相容性会出现偏差
最后的计算结果,如此: