Cesium开发中,如果想要看到真实感,地形数据(DEM)不可或缺。但是很多非GIS专业的人,对地形数据的定位不清晰,不明白地形数据如何展示。
最近很多人问我这个问题,综合看下来,主要问题就集中在地形数据是什么?怎么才能展示出来,看到地形?在这里我就将这两个问题一一解答。
首先,地形数据是什么?拿DEM数据来说,DEM数据就是数字高程模型,就是描述每个点位的高程数据而已,没有其他附加信息,更不会包含影像图,单独展示是看不出什么名堂的。DEM数据在ArcGIS中打开只能看到是灰度图。
其次,如何展示呢?地形数据需要结合影像图或者普通瓦片来展示才能看到地球表面的高低起伏状态;结合影像图展示效果最佳。成功展示后的效果如下图:
下面我将从获取DEM数据到最后成功展示到Cesium中,详细描述其中的各个步骤,希望对大家有所帮助。
1.下载DEM数据,下载地址:http://www.gscloud.cn/,使用高级检索,根据实际需求,下载不同精度的DEM数据。
2.下载下来的DEM数据解压后,有三个文件,其中带有dem标识的即为我们需要的DEM数据文件;另外一个tif文件,我也没明白有什么用,如果有知道的,欢迎评论告知一下,感激不尽。
3.如果一个区域存在多张dem数据,为了方便切图,可以使用ArcGIS Toolbox的数据管理工具——栅格——栅格数据集——镶嵌,可以将多张dem的tif合并为一个tif文件。
4.利用群里(Cesium交流群,群号:115883691)的工具gdal2srtmtiles_x64(我用的是64位的,32位的我没测过),工具的使用说明已经很详细了,这里我就不多作解释了。切图完成之后的,成果如下图:
5.将上边的地形瓦片文件,发布到tomcat,IIS等服务器。发布完成后的访问地址为http://localhost:8080/terrain_tiles
6.在Cesium中创建 terrainProvider和imageryProvider,viewer
我这里使用了本地发布的地形数据和天地图的影像底图。
代码如下:
7.运行页面,打开之后,定位到有地形数据的地方。
从正上方俯视,地形数据已经很明显了
按住Ctrl键,旋转地球,从地平线方向看,地形数据更明显,效果更好。
最后再重复一下,地形数据单独是没法展示出来看的,只是一堆高程数据而已。结合影像图来展示,效果最佳。
声明:文中有描述不正确或者不恰当的地方,欢迎批评指正!