1. 程式人生 > >利用QGIS下載地圖資料

利用QGIS下載地圖資料

這段時間做了一些利用地理資訊進行定位導航的系列工作,其中很重要的一部分是如何獲取到地圖資料,比如道路的向量圖、某一區域的柵格圖,我用到的主要工具是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&ltype=11

此時會生成伺服器地圖的介面。

2、建立柵格地圖圖層

雙擊上述建立的伺服器地圖介面,即會在Layer Panel中生成一個響應的圖層。此時,如果我們知道需要下載的區域的地理座標,可直接進入第三步。如果不知道,可以開啟參考地圖,通過手動選取,來設定下載區域。具體做法為:

開啟web->OpenLayers plugin,選擇想要的地圖:  

而後通過縮放,拖動等操作,將地圖設定到我們需要的區域:  

3、儲存需要的柵格地圖

在建立的柵格圖層上,右鍵,選擇儲存,開啟儲存頁面:  

設定儲存的路徑,地理座標系,範圍(Extent),解析度(Resolution),點選確定後,柵格地圖資料就會被下載下來。如果儲存的範圍很大,通常地圖會被分割為若干個小的區域進行儲存。 

相關操作,可以參考視訊:https://www.bilibili.com/video/av65061