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"即可擷取百度網盤下載下傳位址,這裡提供的是64位版本。
本機IP位址:由于會用到本機IP作為通路位址,可以通過在DOS視窗中運作"IPConfig"指令或其它方式擷取本機IP位址以備用,如下圖所示。
擷取本機IP位址
3. 設定QGIS界面為中文
QGIS的的預設使用者界面是英文版本的,安裝啟動之後如下圖所示。
QGIS界面
如果不習慣使用英文界面,可以設定為中文界面。
首先,點選"SettingsOptions..."菜單,如下圖所示。
選擇菜單
然後,在顯示的"Options-General"對話框中,點選"General"選項。
配置對話框
最後,勾選"Override System Locale"複選框,并在"User interface translation"中選擇"簡體中文"即可,如下圖所示。
配置中文界面
儲存語言配置後,重新啟動軟體,就可以看到軟體是中文版的了,如下圖所示。
中文界面
4. 墨卡托投影衛星影像離線釋出
軟體的安裝方法,請參閱"全球衛星影像離線釋出神器《水經注地圖釋出服務中間件4.0》正式釋出"一文。
由于這裡隻示範衛星地圖的調用方法,是以這裡暫不需要釋出高程DEM資料。
但需要注意的是釋出的衛星影像和設定的投影務必要保證統一,且端口号沒有被其它程式占用,如下圖所示。
安裝配置
安裝完成後,會顯示如下圖所示資訊。
安裝完成
打開Windows任務管理器,如果WeServer服務的狀态顯示"正在運作",則說明中間件服務安裝成功并已經正常運作,如下圖所示。
服務運作正常
確定服務運作正确後,可以在浏覽器中打開"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中的配置保持一緻。
如果無異常,則将會顯示北京位置區域的衛星影像瓦片,如下圖所示。
衛星影像瓦片
同樣地,也可以通過在本機浏覽器中打開"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中的配置保持一緻。
如果無異常,則将會顯示地名标簽結果,如下圖所示。
地名标簽瓦片
在微圖中打開瓦片網格顯示功能,我們可以看到上文中的瓦片"Z=7/Y=48/X=105",在微圖中對應的是"Z=8/X=49/Y=106"瓦片。
也就是說,微圖軟體中的瓦片編号是從1開始的,是以行列号都會比WeServer大1,且它的編号顯示順序為ZXY,而WeServer釋出時的順序為ZYX,如果你了解它們的差別,會有助于你在調用WeServer釋出的瓦片時進行調試。
微圖中的瓦片編号
5. 在QGIS中離線加載墨卡托衛星影像地圖
上文已經說明了如何通過WeServer在内網釋出離線的衛星影像與檢測釋出結果的方法,現在我們來講一下在QGIS中離線加載墨卡托衛星影像地圖的方法。
請確定通過上文中說明的方法,已經成功離線釋出了墨卡托衛星影像。
然後,在QGIS中建立"XYZ Tiles"地圖資料源連接配接,操作如下圖所示。
建立連接配接
在顯示的地圖對話框中,輸入任意圖層名稱,網址則務必需要輸入正确的瓦片釋出位址:
http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/mercator/{z}/{y}/{x}.jpg
配置影像瓦片位址
用上述同樣的方法,添加地名标簽瓦片位址:
http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/mercator/7/48/105.png
配置瓦片位址
輕按兩下添加後的圖層名稱,會加載顯示WeServer釋出的墨卡托衛星影像,如下圖所示。
墨卡托影像離線加載結果
6. WGS84經緯度直投的衛星影像離線釋出
由于之前釋出的是墨卡托衛星影像,是以釋出WGS84衛星影像時需要重新對WeServer的資料源與坐标投影進行配置。
設定資料源與坐标投影除了可以在安裝界面中配置外,還可以通過修改配置檔案的方式設定。
在WeServer安裝路徑中,有一個用于配置WeServer參數的"WeServerConfig.ini"檔案,如下圖所示。
WeServer配置檔案
在配置檔案中,重新設定衛星影像路徑和地名标簽路徑,然後将投影設定為"WGS_84",即經緯度投影,如下圖所示。
設定WGS84投影參數
在"WeServerConfig.ini"檔案中完成相關參數配置并儲存後,輕按兩下"WeServer.exe"檔案,會重新啟動服務并使配置參數生效。
配置參數生效
在確定服務運作的情況下,可以在浏覽器中打開"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中的配置保持一緻。
如果無異常,則将會顯示北京位置區域的衛星影像瓦片,如下圖所示。
衛星影像瓦片
同樣地,也可以通過在本機浏覽器中打開"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中的配置保持一緻。
如果無異常,則将會顯示地名标簽結果,如下圖所示。
地名标簽瓦片
在微圖中打開瓦片網格顯示功能,我們可以看到上文中的瓦片"Z=7/Y=35/X=210",在微圖中對應的是"Z=9/X=211/Y=36"瓦片。
也就是說,微圖軟體中的瓦片的層級比WeServer釋出的層級大2,行列号比WeServer大1,且它的編号顯示順序為ZXY,而WeServer釋出時的順序為ZYX,如果你了解它們的差別,會有助于你在調用WeServer釋出的瓦片時進行調試。
微圖中的瓦片編号
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"地圖服務連結,如下圖所示。
建立WMS/WMTS服務
在顯示的建立連結對話框中,名稱可以任意輸入,網址需要輸入WeServer釋出的WMTS瓦片地圖服務位址:
http://192.168.0.10:8519/WeServer/wmts?Service=WMTS&Request=GetCapabilities
建立WMTS瓦片服務
地圖連接配接添加成功後,通過輕按兩下"acimage"和"aclabel"圖層,即可加載顯示WeServer在内網釋出WGS84衛星影像地圖與地名标簽,如下圖所示。
WGS84衛星影像加載效果
這裡順便提一下,為什麼通過加載上述網址就可以加載WeServer釋出的瓦片地圖呢?
那是因為通過通路以上網址,WeServer會向請求端傳回一個地圖釋出瓦片相關的資訊,包括釋出的資料坐标範圍、瓦片位址的格式、瓦片的坐标投影和每一個圖層的分辨率等詳細資訊。
在浏覽器中打開上述的網址,可以檢視地圖瓦片的描述資訊,如下圖為墨卡托投影瓦片釋出的相關參數。
墨卡托瓦片釋出參數
下圖為釋出WGS84瓦片的相關參數,同樣包括了資料坐标範圍、瓦片位址的格式、瓦片的坐标投影和每一個圖層的分辨率等。
WGS84瓦片釋出參數
也就是說,凡是支援加載WMTS的GIS平台,都可以通過上述方式加載WeServer在内網離線釋出的衛星影像地圖資料。
8. 總結
以上就是基于 QGIS 在内網中離線加載衛星地圖方法的全部說明,主要包括了墨卡托與WGS84衛星影像的釋出、釋出瓦片位址的有效性檢測和在QGIS中進行加載顯示等内容。
最後,由于本文中提供的資料為示例資料,旨在說明地圖釋出服務中間件的内網離線釋出功能,是以衛星影像資料和地名标簽都僅僅提供全球前10級資料。
如果需要釋出高清衛星影像資料,你可以通過關注私信回複"免費資料",領取一個省的高清衛星影像資料,然後更新到對應的資料目錄即可!