如何用QGIS做一个炫酷的三维场景
GIS前沿 2021-08-16
以下文章来源于走天涯徐小洋地理数据科学 ,作者走天涯徐小洋
相比于ArcGIS动辄好几个GB的安装包,QGIS几百兆的安装包简直是对笔记本电脑太友好了,而且启动速度也比ArcGIS快很多,虽然我装的是ArcGIS10.4.1,已经不算新版本了,但是笔记本电脑上运行还是很卡。
这次尝试用QGIS搞了一个三维的采样点分布图+视频,感觉效果还不错。
数据准备
在这个三维场景中主要用到了三种数据:
采样点数据 DEM数据 在线地图
采样点数据整理
将采样点整理成QGIS可以读取的csv格式,一般要包含:
经度 纬度 其它可选信息
要生成采样点,经纬度是必备的,其它备注信息可以根据自己需要添加相应字段填写。
DEM数据整理
为了能够正确的进行三维可视化场景搭建,我们需要DEM数据作为三维地形的基础数据。采样区域比较大,涉及内蒙古大部分地区,所以我在这使用了GEBCO的高程+海深数据,数据精度较低,适合较大范围的高程显示。这套数据具体介绍在:我要去看看山有多高海有多深
DEM数据使用的是WGS84地理坐标系,直接进行三维可视化会出问题,三维场景需要使用投影坐标系,需要对数据进行投影。由于我打算用一些在线地图作为底图,在线地图使用的是World Mercator投影,在这里我将DEM数据也转为了World Mercator投影。
在线地图加载
使用SHP数据然后自己符号化太麻烦了,那么多网络地图,光国内就有天地图、高德、百度等等,而且他们的地图都是经过审核的,直接拿来用多省事,再加上QGIS强大的插件,可以非常方便的引用这些在线地图,底图不用自己画啦。
直接使用QuickMapService插件,安装好插件后,可以从“网络”菜单下面找到插件,默认的插件引用的在线地图较少,这个时候需要从设置(Settings)里面找到More services点击一下Get contributed pack获取更多在线地图图源,这样就能看到很多在线地图来源。
QGIS三维场景搭建
QGIS是一套开源的GIS软件包,默认界面为英文,同时支持多国语言,在这里我切换为了中文界面,后面的教程都以中文出现。QGIS界面切换,如下图所示,需要重启软件生效。
导入采样点数据
QGIS在导入数据方面不如ArcGIS更智能一些,需要手动选择要导入的数据类型。
图层-添加图层-添加定界文本数据图层
注意编码,QGIS导入默认为UTF-8编码,EXCEL使用的是系统编码(一般为ANSI),在这里改为System和系统一致既可。 几何图形定义,QGIS不能默认识别坐标系,需要指定坐标系,一般我们使用GPS定位的坐标系为WGS84
导入底图
想找个合适的底图,需要一个个去试,最终我选定了高德的标注和ESRI的地形作为底图,这样就能给三维场景做贴图使用了。实例数据换了个范围,选择了我大保定的涞源区域。
场景搭建
现在采样点、底图(场景纹理)、DEM都有了,接下来我们可以搭建三维场景了。三维场景需要在Qgis2threejs插件中设置可视化效果,因此我建议大家将数据导入后,不要做任何符号化和标注,直接到Qgis2threejs插件中去设置。
关闭图层中点、线、面矢量的显示,防止扰乱三维场景
项目-特性 查看工程的坐标系,是否已设置为投影坐标系
设置地形起伏程度,根据你的需要自行调整
设置点样式和标注
添加指北针
这样,一个三维场景就搭建完成,可以直接导出图片,或者生成网络版HTML发布,也可以录屏制作视频。
使用Screen to GIF可以录制动图
- END -