查看原文
其他

如何用QGIS做一个炫酷的三维场景

走天涯徐小洋 走天涯徐小洋地理数据科学 2022-05-17

最近在学校上课,手头只有一个笔记本电脑,用ArcGIS画图真的是超级卡,但是图还是得照画,用用QGIS吧。

相比于ArcGIS动辄好几个GB的安装包,QGIS几百兆的安装包简直是对笔记本电脑太友好了,而且启动速度也比ArcGIS快很多,虽然我装的是ArcGIS10.4.1,已经不算新版本了,但是笔记本电脑上运行还是很卡。

这次尝试用QGIS搞了一个三维的采样点分布图+视频,感觉效果还不错。

三维效果

数据准备

在这个三维场景中主要用到了三种数据:

  1. 采样点数据
  2. DEM数据
  3. 在线地图

采样点数据整理

将采样点整理成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的地形作为底图,这样就能给三维场景做贴图使用了。实例数据换了个范围,选择了我大保定的涞源区域。

AutoNavi Annotation, ESRI Terrain在线地图

场景搭建

现在采样点、底图(场景纹理)、DEM都有了,接下来我们可以搭建三维场景了。三维场景需要在Qgis2threejs插件中设置可视化效果,因此我建议大家将数据导入后,不要做任何符号化和标注,直接到Qgis2threejs插件中去设置。

  • 关闭图层中点、线、面矢量的显示,防止扰乱三维场景
点图层会影响可视化效果,建议在QGIS主程序图层中关掉
  • 项目-特性 查看工程的坐标系,是否已设置为投影坐标系
在这里我和底图保持一致,使用的世界墨卡托投影
  • 设置地形起伏程度,根据你的需要自行调整
Vertical exaggeration设置起伏程度
  • 设置点样式和标注
自定义图标,高程需要自行调整
  • 添加指北针
指北针

这样,一个三维场景就搭建完成,可以直接导出图片,或者生成网络版HTML发布,也可以录屏制作视频。

相关文章阅读:

GIS基础教程之坐标系

我要去看看山有多高海有多深

如何使用QGIS绘制一张地图


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存