cesium开发&Terrain地形切片原理分析

首先由缩放的层级计算出切片的位置,其中整个切片的层级是第0级,即由两个切片组成,如下图所示,第一张切片的左下角位置为(-180,-90),右上角为(0,90),第二张图片左下角为(0,-90)右上角为(180,90),依次每张切片的唯一标识,按照l/x/y.terrain,来组织文件结构。而第二图所示,即为表示层级为8、x为407、y为165的地形切片数据。

cesium开发&Terrain地形切片原理分析_第1张图片

cesium开发&Terrain地形切片原理分析_第2张图片

一开始需要计算出地形影像在每个层级对应的每张切片。然后利用GDAL对影像投影变换和重采样处理。如下图所示,为某一地区数据,其中红色为16级切片位置,而黑色线框为15级需要切片的位置。

cesium开发&Terrain地形切片原理分析_第3张图片

现在我们以10/661/1630.terrain切片来说明一下切图的过程。首先需要说明的是如果切成高度图的方式,那么数据的结构是65*65大小的数组,每个数组元素是两个字节,即为65*65*2=8450个字节,外加一个切片标记以及一个表示水面、陆地的标记。首先得到一个切片在整个Cesium中的位置后,接下来需要计算切片的像素位置。

cesium开发&Terrain地形切片原理分析_第4张图片

然后计算出对应的影像上面的地理坐标,现在是以WGS84地理坐标为准。

cesium开发&Terrain地形切片原理分析_第5张图片

然后又上面的坐标值、以及分辨率,作为GDAL的反射变换参数,还有切片的大小作为GDAL做重采样的依据,来切割影像。

你可能感兴趣的:(Cesium,C++)