999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2013-12-11 07:27:56邱儒瓊何保國(guó)
測(cè)繪通報(bào) 2013年2期
關(guān)鍵詞:數(shù)據(jù)庫(kù)功能

邱儒瓊,何保國(guó)

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

一、引 言

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

二、總體設(shè)計(jì)

1.功能設(shè)計(jì)

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

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

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

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

2.開發(fā)模式

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

三、功能實(shí)現(xiàn)

QGIS的插件開發(fā)通常需要經(jīng)過(guò)環(huán)境配置、Qt GUI資源準(zhǔn)備、代碼編寫和插件測(cè)試4個(gè)環(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)備測(cè)試地名地址數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)名為allpoint.mdb,地名地址表含地名、Coor_X、Coor_Y)和相應(yīng)的測(cè)試數(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è)計(jì)對(duì)話框。使用Qt Designer創(chuàng)建對(duì)話框和主窗口中的輸入框、文字標(biāo)簽、表格及命令按鈕等部件,并定義它們的大小、位置等屬性,最后使用PyQt的pyuic4命令行將對(duì)話框轉(zhuǎn)換到Python文件(ui_searchbypoi.py)。

3)創(chuàng)建初始化文件(__init__.py)和實(shí)現(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)建一個(gè)子目錄(searchbypoi),將上述所有創(chuàng)建的文件拷貝至所創(chuàng)建的子目錄下。QGIS將Python插件和C++插件一同列在插件管理器中,方便QGIS啟動(dòng)后由核心插件Plugin Installer自動(dòng)加載。

3.編寫代碼

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

4.插件測(cè)試

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

圖2 地名搜索與定位

四、結(jié)束語(yǔ)

不同于商業(yè)GIS軟件,開源GIS軟件無(wú)需背負(fù)數(shù)據(jù)兼容、易用性、軟件成本等問(wèn)題的包袱,開發(fā)者能夠?qū)⒕杏诠δ艿拈_發(fā)。因此,開源GIS軟件功能普遍很強(qiáng),技術(shù)也非常先進(jìn),其背后是來(lái)自技術(shù)狂熱者和學(xué)院研究者的大力支持。QGIS以其擁有的幾十個(gè)核心插件和大量的外部插件,為各個(gè)領(lǐng)域的地理信息應(yīng)用提供了強(qiáng)大的支持。本文在PyQt環(huán)境下,利用Python作為開發(fā)語(yǔ)言,通過(guò)訪問(wèn)地名地址數(shù)據(jù)庫(kù),開發(fā)了一個(gè)簡(jiǎn)單實(shí)用的地名搜索插件,是對(duì)我國(guó)開源GIS開發(fā)應(yīng)用層次與國(guó)際接軌的一次探索,同時(shí)也對(duì)開發(fā)人員采用此技術(shù)路線,改進(jìn)地名搜索算法或利用地名搜索服務(wù)來(lái)實(shí)現(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ù)庫(kù)功能
也談詩(shī)的“功能”
關(guān)于非首都功能疏解的幾點(diǎn)思考
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡(jiǎn)直”和“幾乎”的表達(dá)功能
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
主站蜘蛛池模板: 成人永久免费A∨一级在线播放| AV色爱天堂网| 在线综合亚洲欧美网站| 一区二区三区四区日韩| 久热re国产手机在线观看| 四虎综合网| 尤物特级无码毛片免费| 久久综合伊人77777| 亚洲男人天堂网址| 亚洲欧美在线综合图区| 18禁影院亚洲专区| 9啪在线视频| 中文字幕丝袜一区二区| 四虎免费视频网站| 九九热视频在线免费观看| 日韩第一页在线| 亚洲AV无码乱码在线观看裸奔| 国产高清又黄又嫩的免费视频网站| 亚洲中久无码永久在线观看软件 | 制服丝袜亚洲| 综合社区亚洲熟妇p| 无码中文AⅤ在线观看| 91啦中文字幕| 日韩福利视频导航| 国产精品成人久久| 伊人激情综合| 一级全免费视频播放| 欧美综合成人| 九九久久99精品| 国产在线视频二区| 国产白浆在线| 欧美影院久久| 日韩精品无码免费一区二区三区| 亚洲精品色AV无码看| 欧美日韩午夜视频在线观看 | 欧美精品xx| 欧美国产日韩在线| 亚洲精品无码高潮喷水A| 欧美97欧美综合色伦图| 欧美亚洲国产精品久久蜜芽| 国产幂在线无码精品| 亚洲乱伦视频| 欧美激情视频一区二区三区免费| 黄色不卡视频| 亚洲日韩欧美在线观看| 国产91视频免费观看| 亚洲AV无码久久天堂| 国产aaaaa一级毛片| 麻豆精品久久久久久久99蜜桃| 成人免费网站久久久| 久久久久九九精品影院| 污污网站在线观看| 91精品视频网站| 欧美成人一级| 亚洲不卡影院| 国产毛片网站| 精品国产www| 午夜视频免费一区二区在线看| 中国国产一级毛片| 波多野结衣中文字幕久久| 成色7777精品在线| 精品伊人久久久香线蕉| 偷拍久久网| 国产精品亚洲一区二区三区z| 拍国产真实乱人偷精品| 97免费在线观看视频| 中文无码日韩精品| 亚洲VA中文字幕| 免费无码网站| 欧美国产综合视频| 亚洲AⅤ永久无码精品毛片| 欧洲成人在线观看| 国产成人一区二区| 就去色综合| 精久久久久无码区中文字幕| 91视频国产高清| 999精品视频在线| 久久精品只有这里有| 秘书高跟黑色丝袜国产91在线| 青青久视频| 欧美精品成人| 日韩av在线直播|