基于 QGIS 在内网中离线加载卫星地图的方法

时间:2024-05-23 11:52:51

1. 概述

我们之前为大家分享过在三维地球开源平台离线加载卫星影像的方法,主要包括基于桌面端的OsgEarth开源三维地球和基于Web端的Cesium开源三维地球等平台的局域网离线影像加载。

另外,也为大家分享过在二维开源平台离线加载卫星影像的方法,主要包括基于OpenLayers的内网WebGIS离线部署、基于MapBox的内网WebGIS离线部署和基于 GoogleMap 离线 API 在内网中加载离线卫星地图等具体操作方法。

但由于有客户咨询过如何在QGIS中离线加载谷歌卫星影像的问题,因此觉得有必要再针对这个问题为大家作一下分享。

那么什么是QGIS呢? QGIS原称为Quantum GIS,是一个用户界面友好的开源桌面端软件,支持数据的可视化、管理、编辑、分析以及印刷地图的制作,并支持多种矢量、栅格与数据库格式及功能。

你也可以简单粗暴地把它理解为是一个开源且免费的ArcGIS,因为它和ArcGIS一样都有着很多非常强大的GIS功能。

2. 准备工作

在开始之前,需要先准备离线数据发布软件、离线卫星影像示例数据、QGIS安装包和本机IP地址等。

地图发布软件:需要在内网发布离线卫星影像,请确保地图发布服务中间件版本为4.0.6以上,如果低于该版本,请通过私信并回复"中间件"免费获取最新版本安装包,也可以直接在水经注官方网站下载。

离线示例数据:本文提供的离线示例数据包括墨卡托投影和WGS84投影的卫星影像与地名标签数据,由于这里主要是为了进行功能性演示,因此只提供了前10级影像数据。

基于 QGIS 在内网中离线加载卫星地图的方法

卫星影像示例数据

在安装软件之前,请从私信“示例数据”获取地址,下载示例数据。

QGIS软件安装包:QGIS安装包可以从QGIS官方网站下载,也可以通过私信回复"QGIS"即可获取百度网盘下载地址,这里提供的是64位版本。

本机IP地址:由于会用到本机IP作为访问地址,可以通过在DOS窗口中运行"IPConfig"命令或其它方式获取本机IP地址以备用,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

获取本机IP地址

3. 设置QGIS界面为中文

QGIS的的默认用户界面是英文版本的,安装启动之后如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

QGIS界面

如果不习惯使用英文界面,可以设置为中文界面。

首先,点击"Settings\Options..."菜单,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

选择菜单

然后,在显示的"Options-General"对话框中,点击"General"选项。

基于 QGIS 在内网中离线加载卫星地图的方法

配置对话框

最后,勾选"Override System Locale"复选框,并在"User interface translation"中选择"简体中文"即可,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

配置中文界面

保存语言配置后,重新启动软件,就可以看到软件是中文版的了,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

中文界面

4. 墨卡托投影卫星影像离线发布

软件的安装方法,请参阅"全球卫星影像离线发布神器《水经注地图发布服务中间件4.0》正式发布"一文。

由于这里只演示卫星地图的调用方法,因此这里暂不需要发布高程DEM数据。

但需要注意的是发布的卫星影像和设置的投影务必要保证统一,且端口号没有被其它程序占用,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

安装配置

安装完成后,会显示如下图所示信息。

基于 QGIS 在内网中离线加载卫星地图的方法

安装完成

打开Windows任务管理器,如果WeServer服务的状态显示"正在运行",则说明中间件服务安装成功并已经正常运行,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

服务运行正常

确保服务运行正确后,可以在浏览器中打开"Z=7/Y=48/X=105"的标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/mercator/7/48/105.jpg

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示北京位置区域的卫星影像瓦片,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

卫星影像瓦片

同样地,也可以通过在本机浏览器中打开"Z=7/Y=48/X=105"的地名标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/mercator/7/48/105.png

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示地名标签结果,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

地名标签瓦片

在微图中打开瓦片网格显示功能,我们可以看到上文中的瓦片"Z=7/Y=48/X=105",在微图中对应的是"Z=8/X=49/Y=106"瓦片。

也就是说,微图软件中的瓦片编号是从1开始的,因此行列号都会比WeServer大1,且它的编号显示顺序为ZXY,而WeServer发布时的顺序为ZYX,如果你了解它们的区别,会有助于你在调用WeServer发布的瓦片时进行调试。

基于 QGIS 在内网中离线加载卫星地图的方法

微图中的瓦片编号

5. 在QGIS中离线加载墨卡托卫星影像地图

上文已经说明了如何通过WeServer在内网发布离线的卫星影像与检测发布结果的方法,现在我们来讲一下在QGIS中离线加载墨卡托卫星影像地图的方法。

请确保通过上文中说明的方法,已经成功离线发布了墨卡托卫星影像。

然后,在QGIS中新建"XYZ Tiles"地图数据源连接,操作如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

新建连接

在显示的地图对话框中,输入任意图层名称,网址则务必需要输入正确的瓦片发布地址:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/mercator/{z}/{y}/{x}.jpg

基于 QGIS 在内网中离线加载卫星地图的方法

配置影像瓦片地址

用上述同样的方法,添加地名标签瓦片地址:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/mercator/7/48/105.png

基于 QGIS 在内网中离线加载卫星地图的方法

配置瓦片地址

双击添加后的图层名称,会加载显示WeServer发布的墨卡托卫星影像,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

墨卡托影像离线加载结果

6. WGS84经纬度直投的卫星影像离线发布

由于之前发布的是墨卡托卫星影像,因此发布WGS84卫星影像时需要重新对WeServer的数据源与坐标投影进行配置。

设置数据源与坐标投影除了可以在安装界面中配置外,还可以通过修改配置文件的方式设置。

在WeServer安装路径中,有一个用于配置WeServer参数的"WeServerConfig.ini"文件,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

WeServer配置文件

在配置文件中,重新设置卫星影像路径和地名标签路径,然后将投影设置为"WGS_84",即经纬度投影,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

设置WGS84投影参数

在"WeServerConfig.ini"文件中完成相关参数配置并保存后,双击"WeServer.exe"文件,会重新启动服务并使配置参数生效。

基于 QGIS 在内网中离线加载卫星地图的方法

配置参数生效

在确保服务运行的情况下,可以在浏览器中打开"Z=7/Y=35/X=210"的标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/wgs84/7/35/210.jpg

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示北京位置区域的卫星影像瓦片,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

卫星影像瓦片

同样地,也可以通过在本机浏览器中打开"Z=7/Y=35/X=210"的地名标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/wgs84/7/35/210.png

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示地名标签结果,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

地名标签瓦片

在微图中打开瓦片网格显示功能,我们可以看到上文中的瓦片"Z=7/Y=35/X=210",在微图中对应的是"Z=9/X=211/Y=36"瓦片。

也就是说,微图软件中的瓦片的层级比WeServer发布的层级大2,行列号比WeServer大1,且它的编号显示顺序为ZXY,而WeServer发布时的顺序为ZYX,如果你了解它们的区别,会有助于你在调用WeServer发布的瓦片时进行调试。

基于 QGIS 在内网中离线加载卫星地图的方法

微图中的瓦片编号

7. 在QGIS中加载WGS84离线卫星影像

理论上如果QGIS中的"XYZ Tiles"瓦片加载功能支持WGS84坐标系的话,同样地可以通过瓦片地址进行加载。

WGS84卫星影像瓦片发布地址为:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/wgs84/{z}/{y}/{x}.jpg

WGS84地名标签瓦片发布地址为:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/wgs84/{z}/{y}/{x}.png

但经过研究,QGIS的"XYZ Tiles"功能好像并不支持WGS84的瓦片加载,但并未作过于深入的研究。

不过由于WeServer发布的离线瓦片支持WMTS服务,因此我们可以在QGIS中新建"WMS/WMTS"地图服务链接,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

新建WMS/WMTS服务

在显示的新建链接对话框中,名称可以任意输入,网址需要输入WeServer发布的WMTS瓦片地图服务地址:

http://192.168.0.10:8519/WeServer/wmts?Service=WMTS&Request=GetCapabilities

基于 QGIS 在内网中离线加载卫星地图的方法

新建WMTS瓦片服务

地图连接添加成功后,通过双击"acimage"和"aclabel"图层,即可加载显示WeServer在内网发布WGS84卫星影像地图与地名标签,如下图所示。

基于 QGIS 在内网中离线加载卫星地图的方法

WGS84卫星影像加载效果

这里顺便提一下,为什么通过加载上述网址就可以加载WeServer发布的瓦片地图呢?

那是因为通过访问以上网址,WeServer会向请求端返回一个地图发布瓦片相关的信息,包括发布的数据坐标范围、瓦片地址的格式、瓦片的坐标投影和每一个图层的分辨率等详细信息。

在浏览器中打开上述的网址,可以查看地图瓦片的描述信息,如下图为墨卡托投影瓦片发布的相关参数。

基于 QGIS 在内网中离线加载卫星地图的方法

墨卡托瓦片发布参数

下图为发布WGS84瓦片的相关参数,同样包括了数据坐标范围、瓦片地址的格式、瓦片的坐标投影和每一个图层的分辨率等。

基于 QGIS 在内网中离线加载卫星地图的方法

WGS84瓦片发布参数

也就是说,凡是支持加载WMTS的GIS平台,都可以通过上述方式加载WeServer在内网离线发布的卫星影像地图数据。

8. 总结

以上就是基于 QGIS 在内网中离线加载卫星地图方法的全部说明,主要包括了墨卡托与WGS84卫星影像的发布、发布瓦片地址的有效性检测和在QGIS中进行加载显示等内容。

最后,由于本文中提供的数据为示例数据,旨在说明地图发布服务中间件的内网离线发布功能,因此卫星影像数据和地名标签都仅仅提供全球前10级数据。

如果需要发布高清卫星影像数据,你可以通过关注私信回复"免费数据",领取一个省的高清卫星影像数据,然后更新到对应的数据目录即可!