亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于QGIS的地名搜索插件開發(fā)

        2013-12-11 07:27:56邱儒瓊何保國
        測繪通報 2013年2期
        關(guān)鍵詞:插件開源數(shù)據(jù)庫

        邱儒瓊,何保國

        (1.湖北省基礎(chǔ)地理信息中心,湖北武漢430071;2.湖北省測繪局,湖北武漢430071)

        一、引 言

        3S技術(shù)是目前IT領(lǐng)域的熱門話題,GIS也隨著Google Earth的流行而被越來越多的人所熟知。在GIS流行的背后,它關(guān)聯(lián)著人們?nèi)粘I畹姆椒矫婷?,也有越來越多的開源GIS在默默貢獻(xiàn)自己的力量。在眾多的開源桌面GIS軟件中,QGIS以其用戶界面友好、廣泛支持操作系統(tǒng)等特點,擁有廣大的用戶群[1]。由于QGIS是基于Qt跨平臺類庫開發(fā),因此支持目前最為廣泛的操作系統(tǒng)如Linux、Unix、Mac OSX和Windows等,這一點是其他很多桌面GIS軟件所不可企及的。而最為重要的是,其重構(gòu)了QGIS的API庫,方便用戶進(jìn)行二次開發(fā)。通常GIS需要回答“我們在哪兒”或“我們到哪兒”等這類與地理位置相關(guān)的問題,但目前QGIS還只支持針對空間數(shù)據(jù)的屬性搜索功能,而不具備針對用戶自定義的關(guān)系型數(shù)據(jù)表格的屬性搜索功能。由于QGIS具有支持插件模式的優(yōu)點,因此可以通過地名搜索插件來擴展QGIS在地名搜索方面的功能。本文將利用常見地名數(shù)據(jù)庫,闡述在PyQt環(huán)境下利用Python語言來開發(fā)QGIS地名搜索插件的方法。

        二、總體設(shè)計

        1.功能設(shè)計

        近年來,信息技術(shù)發(fā)展迅猛,信息網(wǎng)絡(luò)廣泛普及,傳統(tǒng)的地名服務(wù)管理模式已不能滿足社會需求。建立和完善地名數(shù)據(jù)庫,開展地名信息化服務(wù),已成為地名工作的必然選擇和發(fā)展方向。一般而言,地名地址數(shù)據(jù)庫包括水系、陸地地形、行政區(qū)域及其他區(qū)域、居民點,以及具有地名意義的交通運輸設(shè)施,具有地名意義的水利、電力、電信設(shè)施,具有地名意義的紀(jì)念地、旅游勝地,具有地名意義的建筑物、構(gòu)筑物,具有地名意義的單位9大類數(shù)據(jù)。其數(shù)據(jù)庫表結(jié)構(gòu)含有地名地址名稱、地理坐標(biāo)X值、地理坐標(biāo)Y值、地名地址類型、所屬行政區(qū)劃等基本字段和其他擴充信息。

        隨著社會各部門信息化水平的提高,各種業(yè)務(wù)數(shù)據(jù)、統(tǒng)計數(shù)據(jù)及其他數(shù)據(jù)急劇增加,大多數(shù)的業(yè)務(wù)數(shù)據(jù)與地理位置都有著緊密的聯(lián)系,而通過GIS實現(xiàn)對業(yè)務(wù)數(shù)據(jù)的管理也逐漸成為一種被大家認(rèn)同的趨勢。地名查詢定位是GIS應(yīng)用中的一個常用功能,它借助于基礎(chǔ)地名地址庫中的位置信息,采用模糊匹配的地名查詢方法,實現(xiàn)地名數(shù)據(jù)空間位置與業(yè)務(wù)數(shù)據(jù)的關(guān)聯(lián)。因此,本文的地名搜索插件主要包括兩大功能:

        1)根據(jù)給定的地名查詢條件,從地名地址數(shù)據(jù)庫中篩選出符合條件的地名并顯示輸出。

        2)根據(jù)所查詢地名所對應(yīng)的地理坐標(biāo)實現(xiàn)在地圖上的定位。

        2.開發(fā)模式

        QGIS是開源桌面 GIS,除了核心功能以外,QGIS還支持插件擴展。核心插件(core plugins)由QGIS開發(fā)組維護(hù),包含在所有的QGIS發(fā)行版中;外部插件(external plugins)由愛好者們開發(fā),由核心插件plugin installer加載。QGIS支持C++和Python兩種語言進(jìn)行插件開發(fā)。由于Python是一種簡單易學(xué)、功能強大的編程語言,有高效率的高層數(shù)據(jù)結(jié)構(gòu),能簡單而有效地實現(xiàn)面向?qū)ο缶幊蹋襊ython簡潔的語法和對動態(tài)輸入的支持,再加上解釋性語言的本質(zhì),使得它在大多數(shù)平臺上的很多領(lǐng)域都是一個理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)[2],所以本文選擇采用 Python和 PyQt進(jìn)行地名搜索插件的開發(fā)。

        三、功能實現(xiàn)

        QGIS的插件開發(fā)通常需要經(jīng)過環(huán)境配置、Qt GUI資源準(zhǔn)備、代碼編寫和插件測試4個環(huán)節(jié),本文將詳細(xì)介紹各環(huán)節(jié)的具體內(nèi)容。

        1.環(huán)境配置

        首先,為創(chuàng)建GUI做好準(zhǔn)備工作,即先進(jìn)行開發(fā)環(huán)境的配置工作,包括在Windows操作系統(tǒng)下安裝Python2.5.1、Pywin32-216.win32-Py2.5、PyQt-Py2.5-gpl-4.7.3-1、QGIS-OSGeo4W-1.7.0-b55a00e73-Setup等QGIS、Python、Qt、PyQt開發(fā)工具;然后準(zhǔn)備測試地名地址數(shù)據(jù)庫(數(shù)據(jù)庫名為allpoint.mdb,地名地址表含地名、Coor_X、Coor_Y)和相應(yīng)的測試數(shù)據(jù)。

        2.準(zhǔn)備Qt GUI資源

        1)編譯工具圖標(biāo)。根據(jù)工具圖標(biāo),使用PyQt的資源編譯器pyrrc4命令行pyrcc4-o resources.py resource.qrc,生成描述資源的 Python文件(resources.py)。

        2)設(shè)計對話框。使用Qt Designer創(chuàng)建對話框和主窗口中的輸入框、文字標(biāo)簽、表格及命令按鈕等部件,并定義它們的大小、位置等屬性,最后使用PyQt的pyuic4命令行將對話框轉(zhuǎn)換到Python文件(ui_searchbypoi.py)。

        3)創(chuàng)建初始化文件(__init__.py)和實現(xiàn)類文件(searchbypoidialog.py,searchbypoi_gui.py,searchbypoi.py)。所有文件結(jié)構(gòu)如圖1所示。

        圖1 開發(fā)文件列表

        4)設(shè)置插件存放路徑。在Window的C:Program FilesQuantum GISWroclawappsqgispythonplugins或 C:Documents and Settings(user).qgispythonplugins路徑下創(chuàng)建一個子目錄(searchbypoi),將上述所有創(chuàng)建的文件拷貝至所創(chuàng)建的子目錄下。QGIS將Python插件和C++插件一同列在插件管理器中,方便QGIS啟動后由核心插件Plugin Installer自動加載。

        3.編寫代碼

        在各實現(xiàn)類文件中編寫代碼,其中主要功能由searchbypoi_gui.py的兩個內(nèi)部函數(shù)(SearchFromDB和LocateMap)實現(xiàn)。示例代碼如下

        4.插件測試

        完成代碼編寫后,可以關(guān)閉并重新啟動QGIS,導(dǎo)入筆者開發(fā)的插件,并輸入查詢字符串進(jìn)行測試,查詢定位效果截屏如圖2所示。同時,也可以將開發(fā)好的插件發(fā)布到QGIS插件庫中,使其成為QGIS資源庫的一部分,為開源GIS貢獻(xiàn)自己的一部分力量。

        圖2 地名搜索與定位

        四、結(jié)束語

        不同于商業(yè)GIS軟件,開源GIS軟件無需背負(fù)數(shù)據(jù)兼容、易用性、軟件成本等問題的包袱,開發(fā)者能夠?qū)⒕杏诠δ艿拈_發(fā)。因此,開源GIS軟件功能普遍很強,技術(shù)也非常先進(jìn),其背后是來自技術(shù)狂熱者和學(xué)院研究者的大力支持。QGIS以其擁有的幾十個核心插件和大量的外部插件,為各個領(lǐng)域的地理信息應(yīng)用提供了強大的支持。本文在PyQt環(huán)境下,利用Python作為開發(fā)語言,通過訪問地名地址數(shù)據(jù)庫,開發(fā)了一個簡單實用的地名搜索插件,是對我國開源GIS開發(fā)應(yīng)用層次與國際接軌的一次探索,同時也對開發(fā)人員采用此技術(shù)路線,改進(jìn)地名搜索算法或利用地名搜索服務(wù)來實現(xiàn)類似功能提供了參考解決方案。

        [1]SHERMAN G E.Desktop GIS:Mapping the Planet with Open Source Tools[M].USA:Pragmatic Bookshelf,2008.

        [2]SUMMERFIELD M.Rapid GUI Programming with Python and Qt[M].USA:Prentice Hall,2007.

        [3]陳杰.GIS的開源夜宴[J].軟件世界,2006(20):38.

        猜你喜歡
        插件開源數(shù)據(jù)庫
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        五毛錢能買多少頭牛
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        MapWindowGIS插件機制及應(yīng)用
        開源計算機輔助翻譯工具研究
        老师翘臀高潮流白浆| 国产自拍三级黄片视频| 国产精品久久婷婷六月丁香| 国产精品一区二区av麻豆日韩| 老色鬼在线精品视频| 亚洲美腿丝袜 欧美另类| 中文字幕AⅤ人妻一区二区| 亚洲一区二区免费日韩| 久久精品人妻中文av| 亚洲欧洲免费无码| 免费无码又黄又爽又刺激| 中文字幕 人妻熟女| 欧洲一级无码AV毛片免费| 亚洲a级视频在线播放| 欧美日本精品一区二区三区| 激情影院内射美女| 人妻少妇不满足中文字幕| 99久久免费中文字幕精品 | 亚洲中文字幕一区二区三区多人| 亚洲免费观看视频| 国产深夜男女无套内射| 久久国产亚洲高清观看5388| 日韩精品夜色二区91久久久| 久久av不卡人妻出轨一区二区| 男女性杂交内射妇女bbwxz| 国产成人麻豆精品午夜福利在线 | 国产丝袜视频一区二区三区| 91亚洲精品福利在线播放 | 国产一区二区三区不卡视频| 欧美成人猛片aaaaaaa| 日本熟妇色xxxxx欧美老妇| 老熟女熟妇嗷嗷叫91| 久久91精品国产91久久跳舞| 四虎永久在线精品免费一区二区| 青楼妓女禁脔道具调教sm | 日本一区免费喷水| 亚洲成人av大片在线观看| 亚洲国产精品成人精品无码区在线 | 亚洲av日韩片在线观看| 日韩产的人妻av在线网| 无码专区一ⅴa亚洲v天堂|