本文主要是介绍量化地形处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1: 量化地形切片:GDAL查询数据;CTB算法转mesh;高度图需要和周围高度图边界做高度融合,四顶点需要做平均值融合;法线想要在前端显示正确必须将mesh坐标转为4326或者3857;
这个使用开源即可:cesium-terrain-builder-master-quantized-mesh
2:量化地形不同精度数据集合并:
不同精度最好切到他的实际分辨率对应层级;
正向合并:只需要处理边界瓦片(边界定义,获取量化地形高度范围,如果最低值都大于0,说明不需要合并);找出待生产瓦片边界三角形(左右上下位置比较),判断此三角形是否需要加点(周围边界点查待生产瓦片),重新生成三角形;
中间瓦片正向合并(周围点加入到当前三角网)
反向合并:使用带生产瓦片边界查询周围瓦片边界,如果待生产边界点有不与边界瓦片点高度不同,用边界修改自身;
四顶点高度处理:使用左上,右上,左下,右下 瓦片平均高度(这和切片一样)
3:量化地形转高度图:
量化地形mesh 解码为mesh对象,x,y 坐标需要扩大1000好计算;
按照量化地形tilesize建立位图,位图每个位置(x,y)去查询所在三角形(三角形使用rtree索引,精确查询使用二维点是否在三角形内,边界也算);
通过x,y和三角形平面方程算出每个点z高度值(使用平面方程ax+by+cz+d=0计算);
位图保存:归一化到0-255输出位图, 如果保存tif直接建立float的tif输出即可
这篇关于量化地形处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!