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

基于QGIS的開源GIS二次開發技術探究

2017-12-20 01:22:27黃善春
科學與財富 2017年29期
關鍵詞:二次開發

摘要:由于以往的各種商業地理信息系統軟件平臺定義了不同的數據格式和數據組織方式,且其開發模式各不相同又相互獨立與封閉,以及常規商業GIS軟件的高費用在一定程度上限制了地理信息系統開發的大眾化發展。本文介紹基于開源軟件QGIS源碼在WINDOWS系統下編譯并進行二次開發的基本過程與方法,并給出地圖瀏覽與查詢系統開發實例,希望對相關的GIS系統開發者有一定的指導和借鑒作用。

關鍵詞:GIS QGIS 源碼編譯 二次開發

中圖分類號:P208

一、QGIS概述

GIS是目前IT領域的熱門話題,隨著Google earth等GIS系統的流行逐漸被越來越多的人所熟知。地理信息系統(GIS)是一個用于采集、存儲、處理、管理、分析、顯示和應用地理空間信息及其屬性數據的計算機系統,現已廣泛地應用于環境監測、災害分析預警與監測、國土資源及人口調查、城市規劃等諸多領域。在計算機技術和全球信息網絡技術飛速發展的大環境下,GIS軟件技術體系迅猛發展。除了傳統的商業GIS軟件平臺外,眾多開源GIS也在為地理信息系統默默貢獻自己的力量。QGIS是基于跨平臺的QT軟件,采用C++語言開發的桌面地理信息系統,因而其具有良好的跨平臺性,廣泛支持Linux、Windows、Unix和Mac OSX等操作系統,這是其他諸多商業GIS軟件所不能企及的。最為重要的是QGIS為我們封裝了二次開發的API庫,通過引用各個類庫中的接口并配合動態庫的使用,可以方便地實現GIS功能,這使得開發者能夠將精力集中到解決應用程序中的業務邏輯中,而不是從頭開始開發GIS基本功能,方便開發者開發自己的GIS軟件[1]。

二QGIS的編譯及環境搭建

QGIS源碼及各種第三方依賴庫有不同的版本,開發者可基于自己的開發環境選擇不同的開發版本,本文介紹WIN10+QGIS2.8.9+VS2010+CMAKE3.2.3的編譯方法,其他版本與之類似。

(1)編譯所需要的工具及源碼:VS2010、qt-opensource-x86-vs2010-4.8.7、qt-vs-addin-1.1.11-opensource、OsGeo4W、CMAKE3.2.3、flex、bison和QGIS2.8.9源碼。

(2)安裝好工具之后,使用OsGeo4W下載安裝編譯所需的第三方庫,需要安裝的有:-expat、-fcgi、-gdal、-grass、-gsl-devel、-iconv、-pyqt4、-qt4-deve、-qwt-devel-qt4、-qwt-libs-qt4、-sip、-spatialite、-libspatialindex-devel、-Python-qscintilla、-qgis-ltr-common、-qgis-common。OsGeo4W包含了許多第三方庫文件,我們在安裝時只需要選擇所需的庫文件進行下載安裝,完全裝好后提示重啟電腦,將下載安裝的庫文件加入環境變量后即可進行源碼的編譯。

(3)使用cmake打開源碼文件夾,將CMakeLists.txt拖入cmake中點擊configure開始編譯,編譯可能會出現大量紅色警告,這里的錯誤大多是路徑問題,如果出現了錯誤,必須進行修改否則之后的編譯將不能通過,我們只需將庫文件的路徑修改為自己安裝好的路徑,即可正確編譯。

(4)在cmake編譯沒有出錯的情況下,會在build文件夾下生成sln解決方案,使用VS2010打開源碼即可編譯生成,進行二次開發我們只需生成以下8個項目即可進行開發:ui、qgis_core、qgis_analysis、qgis_gui、qgis_app、qgis、ogrprovider、gdalprovider。編譯生成一系列的動態庫lib文件,開發者即可使用QGIS的lib庫文件配合include頭文件和bin動態鏈接庫文件進行二次開發。

三、QGIS開發實例

3.1 顯示數據

使用VS新建qt application,配置開發環境屬性,注意加載xml模塊,然后借助于QGIS開發文檔等相關資料即可進行代碼的編寫。QGIS提供了地圖畫布類mapcanvas能實現數據視圖,借助QgsVectorLayer、QgsRaster、addMapLayer、setExtent、setLayerSet、setVisible等API函數即可實現矢量與柵格數據圖層的加載與顯示。除了顯示數據外,我們通過在類中使用initLayerTreeView、createContextMenu、setMapTool、panMode、ZoomInMode、ZoomOutMode、ZoomFullMode等一系列API函數實現圖層管理器和視圖窗口的漫游縮放等基本地圖操作與顯示功能。

3.2 屬性數據的查看

屬性表是開發一個GIS系統必備的功能,通過屬性表用戶能夠進行空間分析、查詢等操作,正是因為GIS矢量數據包含各種屬性信息,才使得GIS矢量圖形與普通的圖形具有本質的區別。QGIS中提供了以下幾個與屬性表相關的類:

QgsVectorLayerCache、QgsEditorWidgetRegistry、QgsAttributeTableView、QgsAttributeTableModel。其中后兩個類是按照Qt的MVC架構來創建的。Model用來存儲數據,而View則是向用戶顯示的視口。

3.3柵格圖像的增強顯示

對于柵格圖像的增強顯示及操作,是一個GIS軟件的基本功能。QGIS依賴于GDAL插件庫能夠實現顯示多種格式的柵格影像,如常見的遙感圖像格式ENVI Image、GeoTIF等。QGIS的二次開發API中同樣提供了調整柵格圖像對比度、亮度以及拉伸增強顯示等基本功能接口。通過setContentrastEnhancement函數實現對比度和亮度的控制,QGIS中通過QgsBrightnessContrastFilter類對象來控制柵格圖像亮度和對比度,只需在類中定義這樣一個對象,即可通過函數實現柵格圖像的增強顯示。

四、結語

不同于傳統的商業GIS平臺軟件,開源GIS軟件無需擔心數據格式兼容、軟件開發使用成本等問題,開發者能夠將精力集中于應用軟件的業務模塊開發而無需從GIS基本操作入手[5]。因此,開源GIS軟件功能很普遍很強,技術也非常先進,因為其背后是來自眾多技術狂熱者和學院研究者的大力支持。QGIS以其擁有的幾十個核心插件和大量的外部擴展插件以及它跨平臺的優良特性,為各個領域的地理信息應用提供開發平臺[6]。本文通過對開源QGIS源碼的編譯及二次開發方法的研究,為開發人員提供了QGIS開發的技術路線。開發者可根據不同的需求來進行二次開發和插件的開發,并能編寫相應的接口,為自己的GIS應用軟件服務。

參考文獻:

[1]鄧欣,寧芊.基于開源的分布式山洪監測數據系統設計[J].計算機測量與控制,2016,24(10):54-56.DOI:10.16526/j.cnki.11-4762/tp.2016.10.016.

[2]朱浩.開源GIS支持下的災害風險區劃分析研究[D].中國石油大學(華東),2012.[2017-10-13].

作者簡介:

黃善春(1997.01-)男,漢族,身份證號:411524199701051473,本科生,河南信陽,研究方向:地理信息科學

猜你喜歡
二次開發
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
汽車零部件(2014年5期)2014-11-11 12:24:32
基于Pro/E二次開發的推土鏟參數化模塊開發
主站蜘蛛池模板: 亚洲国产成人久久77| 国产一区免费在线观看| 她的性爱视频| 91久久国产综合精品女同我| 亚洲精品色AV无码看| 国产在线视频二区| 一级黄色网站在线免费看| 国产成人亚洲毛片| 一级黄色网站在线免费看| 国产一区二区三区在线精品专区| 四虎国产永久在线观看| 国产情侣一区二区三区| 又爽又大又光又色的午夜视频| 亚洲成在人线av品善网好看| 精品夜恋影院亚洲欧洲| 激情综合图区| 欧美日韩91| 国产毛片高清一级国语 | 亚洲精品无码久久毛片波多野吉| 国产亚洲精品97在线观看| 四虎国产精品永久一区| 丝袜国产一区| 五月丁香伊人啪啪手机免费观看| 久久这里只有精品8| 亚洲免费黄色网| 中国国产A一级毛片| 亚洲一区无码在线| 精品国产污污免费网站| 国产精品亚欧美一区二区三区| 黄网站欧美内射| 蜜桃视频一区二区三区| 亚洲中文精品人人永久免费| 精品五夜婷香蕉国产线看观看| 久综合日韩| 久草青青在线视频| 一级黄色网站在线免费看| 97国产精品视频自在拍| 国产AV无码专区亚洲A∨毛片| 综合天天色| 中文字幕va| 国产视频a| 被公侵犯人妻少妇一区二区三区 | 青青操国产| 亚洲一区二区成人| 国产精品福利尤物youwu | 亚卅精品无码久久毛片乌克兰| 国产精品区视频中文字幕| 国产人免费人成免费视频| 国产a网站| 亚洲另类第一页| AⅤ色综合久久天堂AV色综合| 欧美区国产区| 国产粉嫩粉嫩的18在线播放91| 国产91av在线| 国产精品久久久久无码网站| 免费国产黄线在线观看| 免费一级毛片在线播放傲雪网| 欧美乱妇高清无乱码免费| 一本大道香蕉高清久久| 伊在人亚洲香蕉精品播放| 国产在线视频欧美亚综合| 黄色网站在线观看无码| 日韩 欧美 小说 综合网 另类 | 亚洲色偷偷偷鲁综合| 中文毛片无遮挡播放免费| 天天摸夜夜操| 国产精品hd在线播放| 中文天堂在线视频| 亚洲大尺度在线| 欧美国产日韩在线| 欧美中文字幕一区| 97国产精品视频自在拍| 日本三级精品| 色婷婷久久| 中国成人在线视频| 婷婷六月天激情| 1级黄色毛片| 国产特级毛片| 亚洲动漫h| 久久精品无码国产一区二区三区| 亚洲人成在线精品| 国产理论精品|