利用QGIS下載地圖數據
- 2019 年 10 月 3 日
- 筆記
這段時間做了一些利用地理資訊進行定位導航的系列工作,其中很重要的一部分是如何獲取到地圖數據,比如道路的矢量圖、某一區域的柵格圖,我用到的主要工具是QGIS。QGIS是一個跨平台的免費應用,其中集成了對矢量圖、柵格圖處理的很多功能,同時也集成了很多開放地圖數據網站的介面,比如OpenStreetMap等,因此,在獲取數據,並處理成我們需要的格式方面非常便利。本篇博文主要介紹如何使用QGIS下載數據,並處理成特定的格式。
一、 指定區域指定地物矢量圖獲取
我們經常會遇到這樣一種需求:獲取某一區域的指定地物的地圖,比如獲取某一區域的道路圖、河流圖等。這一節的內容能夠解決這一需求。通常我們從開放的地圖平台OpenStreetMap中下載某一區域的矢量地圖,而後通過後續的處理,來獲取我們需要的地圖資訊。
1、數據下載
1) 在vector菜單欄中選擇OpenStreetMap ->Download Data,即可打開數據的下載框:
2)而後設定需要下載數據的區域,這裡提供了三種區域設置方式:
a) From map canvas:當前窗口顯示的區域
b) From layer:某一圖層所代表的區域
c) Manual:人為設定區域
通常當我們已知我們需要下載的數據的區域,我們採用第三種方式。
3)下載數據:設置好下載區域,並輸入保存文件名後,點擊確定,即開始下載數據。這裡需要注意的一點是,在設定保存文件名時,需要把文件的擴展名帶上,即.osm,這樣在後續載入文件時,才不會出現找不到文件的情況。
2、提取指定地物及矢量圖保持
上一步下載的數據是以xml的形式存儲的,不是矢量圖的格式,因此不能被直接處理。我們需要首先將該文件載入入QGIS中,並轉換為矢量數據,才能進行下一步的處理。
1) osm文件載入:選擇vector->Import Topology from XML,打開數據導入頁面:
選擇需要導入的文件(即剛才我們下載的osm文件),設置轉換後文件名,點擊確認。
2) 導出矢量圖:選擇vector->Export Topology to SpatiaLite,打開矢量圖導出頁面:
由於此處我們需要得到的是道路數據,因此我們在“export type”選擇Polylines;而後設置導出文件名;最後需要導出標籤。選擇Load from DB,並選擇感興趣的標籤。這裡我們僅對道路感興趣,因此我們僅選擇highway。保留標籤的目的是為了進一步篩選,雖然我們在“export type”中選擇了Polylines,但是並不是所有的Polylines都是道路(也有可能是河流等),因此需要進行進一步的篩選。
3) 篩選感興趣的地物:
上述得到的矢量圖,不僅僅包含道路圖,還包含了其他地物特徵,因此需要進一步篩選。
在獲得的圖層上,右鍵打開菜單選項,選擇Open Attribute Table:
選擇select by expression(圖中紅色圈),而後設置篩選的條件。這裡我們需要選擇的是道路,因此我們的篩選條件為:NOT (“highway”= ‘NULL’)。點集select按鈕後,可以看見,道路部分被黃色高亮了。
而後我們在圖層窗口右鍵打開菜單,選擇保存,打開保存頁面:
設置保存文件名,地理坐標系,注意勾選紅色圈內選項,選擇保存,即得到該區域的道路矢量圖。
二、指定區域柵格圖獲取
1、設置下載網址
在Browser Panel窗口中找到Tile Server(XYZ),右鍵,New Connection:
輸入伺服器的網址,例如:
高德影像圖:
https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}
高德路網:
https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8<ype=11
此時會生成伺服器地圖的介面。
2、創建柵格地圖圖層
雙擊上述創建的伺服器地圖介面,即會在Layer Panel中生成一個響應的圖層。此時,如果我們知道需要下載的區域的地理坐標,可直接進入第三步。如果不知道,可以打開參考地圖,通過手動選取,來設定下載區域。具體做法為:
打開web->OpenLayers plugin,選擇想要的地圖:
而後通過縮放,拖動等操作,將地圖設置到我們需要的區域:
3、保存需要的柵格地圖
在創建的柵格圖層上,右鍵,選擇保存,打開保存頁面:
設置保存的路徑,地理坐標系,範圍(Extent),解析度(Resolution),點擊確定後,柵格地圖數據就會被下載下來。如果保存的範圍很大,通常地圖會被分割為若干個小的區域進行保存。
相關操作,可以參考影片:https://www.bilibili.com/video/av65253432/