日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 导入离线地图_PyQGIS开发 -- 离线地图

發布時間:2023/12/20 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 导入离线地图_PyQGIS开发 -- 离线地图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

地圖是地理信息應用的基礎,凡是一切與位置有關的信息都離不開地圖。我們生活中常見的谷歌、百度、高德等公司為我們提供了便利的地圖服務,極大便利了我們生活的方方面面。

在地理信息應用中,地圖往往是基礎底圖,起到……的作用。常見的地圖服務有OpenStreetMap、百度地圖、必應地圖、谷歌地圖、天地圖等等。

在GIS應用系統中,每次都通過網絡連接獲取這些地圖服務無疑是耗時的,這就產生了將這些地圖數據下載、離線存儲的需求。

本文將分別通過QGIS軟件操作和PyQGIS開發示例兩個方面來闡述如何使用QGIS下載OSM(Open Street Map)提供的地圖數據,并離線加載的方法。掌握了PyQGIS加載離線地圖數據的技巧,開發者可以應用到自己開發的Python插件或者獨立應用程序中。由于QGIS的Python API接口與C++ API接口基本一致,因此,QGIS的C++二次開發者也同樣適用。

OSM地圖數據下載

OSM具有豐富的全球開源地理信息數據,提供在線/離線的柵格、矢量數據服務。

由于網絡的原因,在QGIS中加載OSM在線數據并不總是能夠成功,或者地圖加載會非常緩慢。筆者推薦直接用瀏覽器打開 www.openstreetmap.org 網站上,下載離線數據,導出為“.osm”文件。而后文講到的使用QGIS軟件來直接加載OSM在線數據并下載的方法僅供能夠訪問國外網的朋友參考。

在QGIS中,可以使用菜單欄“Vector -> OpenStreetMap -> Download Data”來下載OSM地圖數據。

該功能提供了從“地圖畫布”、“圖層”以及“手動范圍”三種方式下載數據。

這里,以上三種下載方式我們都不講解,它們已經很直觀了。

我們介紹一款叫“OSMDownloader”的插件,它提供了一種使用鼠標拖拽選擇數據下載范圍的方式。

“OSMDownloader”顧名思義,它提供了下載OSM地圖數據的功能。

除了“OSMDownloader”插件以外,我們還需要下載一款“OpenLayers Plugin”插件,它提供了諸如OSM、谷歌、必應等在線地圖服務加載功能。

在QGIS菜單欄依次選擇”Plugins -> Manage and Install Plugins“,在彈出的插件管理窗口中搜索”OSM“找到并安裝“OSMDownloader”這款插件。

同樣,搜索并下載“OpenLayers Plugin”插件。(由于筆者已經安裝了該插件,顧截圖中顯示“Reinstall Plugin”,若沒有安裝過,則該處按鈕會顯示“Install Plugin”)

插件安裝好以后,“OSMDownloader”在QGIS軟件的工具欄上是下面這個樣子的:

而“OpenLayers Plugin”會出現在QGIS的“Web”菜單欄中:

在QGIS中,使用”OSMDownloader“插件下載OSM在線地圖數據的操作如下:

1、打開QGIS軟件,依次選擇菜單欄中的“Web -> OpenLayers plugin -> OpenStreetMap”,加載OSM地圖,并縮放到我們感興趣的位置。

2、點擊“OSMDownloader”插件按鈕,在QGIS地圖窗口中拖動鼠標選擇要下載的地圖數據區域。

3、保存下載文件到本地路徑。

離線地圖數據加載

現在,我們下載好了OSM提供的地圖數據,如何加載呢?

很簡單,直接選中下載的”.osm“文件,拖動到QGIS地圖窗口中,就能打開了。

彈出圖層選擇窗口,點擊“Select All”,并確定。

所有圖層就會在QGIS地圖畫布中展示出來了,如下圖:

這時候,你還可以保存這個地圖工程為”.qgs“的本地文件,下次只需要用QGIS加載這個”.qgs“地圖工程就會自動打開OSM離線地圖數據了。

打開的時候,用QGIS菜單欄“Project -> Open”即可。

需要注意的是,QGIS工程文件只是一個XML文本,只存儲了數據文件的路徑,并沒有存儲數據文件本身,因此,刪除數據文件之后,這個工程文件就會出錯了。拷貝工程文件必須連帶數據文件也要拷貝,并且要將工程文件設置為相對路徑保存(這個不是本節要講的內容,不展開了)。

PyQGIS示例

操作并不復雜,接下來我們使用PyQGIS來完成離線地圖數據加載的操作。

同樣,我們用加載QGIS工程文件的方式來達到打開離線地圖數據的目的,代碼如下:

from PyQt4.QtCore import *

dir = "/Users/Jacory/" # 這個路徑改成你的工程文件路徑

fileName = "OfflineMap.qgs" # 同樣,修改工程文件名稱

f = QFileInfo(dir + fileName)

p = QgsProject.instance()

p.readPath(dir)

p.read(f)

---------------------

OK,本節內容就是這樣,如有錯誤,請批評指正,謝謝。

總結

以上是生活随笔為你收集整理的python 导入离线地图_PyQGIS开发 -- 离线地图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。