• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    跨平臺(tái)開源桌面GIS軟件的設(shè)計(jì)與實(shí)現(xiàn)

    2017-11-29 08:22:58蔡文文王少華鐘耳順胡辰璞劉曉妮
    測繪通報(bào) 2017年1期
    關(guān)鍵詞:跨平臺(tái)空間數(shù)據(jù)開源

    蔡文文,王少華,,鐘耳順,胡辰璞,劉曉妮

    (1. 北京超圖軟件股份有限公司,北京 100015; 2. 超圖地理信息技術(shù)研究所,北京 100015; 3. 中國科學(xué)院地理科學(xué)與資源研究所,北京 100101)

    跨平臺(tái)開源桌面GIS軟件的設(shè)計(jì)與實(shí)現(xiàn)

    蔡文文1,2,王少華1,2,3,鐘耳順3,胡辰璞1,劉曉妮1

    (1. 北京超圖軟件股份有限公司,北京 100015; 2. 超圖地理信息技術(shù)研究所,北京 100015; 3. 中國科學(xué)院地理科學(xué)與資源研究所,北京 100101)

    GIS軟件開源可有效促進(jìn)GIS軟件技術(shù)的發(fā)展,這也是GIS技術(shù)發(fā)展的趨勢(shì)之一。目前,國內(nèi)還沒有跨平臺(tái)的專業(yè)桌面GIS開源軟件。本文研究并實(shí)現(xiàn)了跨平臺(tái)的開源桌面GIS軟件-SuperMap iDesktop Cross,采用C++語言實(shí)現(xiàn)了GIS功能內(nèi)核,同時(shí)基于OSGi框架,采用Java語言實(shí)現(xiàn)了用戶界面開發(fā)。該軟件具備數(shù)據(jù)管理、數(shù)據(jù)處理、三維可視化、空間分析等GIS功能,同時(shí)提供應(yīng)用程序編程接口(API),支持定制開發(fā)。這將使專業(yè)桌面GIS軟件廣泛應(yīng)用于包括Linux在內(nèi)的更廣泛的操作系統(tǒng),使更多的人參與到GIS軟件技術(shù)的發(fā)展中來,共同推動(dòng)國產(chǎn)GIS軟件技術(shù)的發(fā)展。

    開源;跨平臺(tái);GIS;桌面軟件;C++;Java

    自1997年Eric Raymond提出發(fā)展開源軟件的集市模型以來[1],開源軟件迅速發(fā)展,并逐漸進(jìn)入GIS領(lǐng)域。開源GIS軟件以源碼共享和合作發(fā)展為理念,在特定的版權(quán)許可下,軟件的版權(quán)所有人允許任何人以任何目的下載、學(xué)習(xí)、更改或分發(fā)軟件的源代碼。

    開源GIS軟件除開源GIS桌面軟件之外,還涉及許多與地理空間數(shù)據(jù)處理有關(guān)的軟件技術(shù),包括:①軟件開發(fā)框架,如采用Python腳本語言開發(fā)的GIScript,是用于時(shí)空大數(shù)據(jù)處理的框架[2];②空間數(shù)據(jù)庫,如SpatiaLite,它是開源數(shù)據(jù)庫SQLite的空間擴(kuò)展,支持地理空間查詢[3];③GIS功能庫(Libraries),如已廣泛應(yīng)用于不同操作系統(tǒng)、不同平臺(tái)、不同終端的柵格空間數(shù)據(jù)轉(zhuǎn)換庫GDAL[4];④空間參考(地圖投影)工具,如Proj.4[5]等。這些軟件技術(shù)可歸結(jié)為桌面GIS軟件功能的一部分。因此,發(fā)展開源桌面GIS軟件技術(shù)難度較大。

    開源GIS桌面軟件依據(jù)采用的開發(fā)語言的不同,大體可以分為3類:①以C語言為實(shí)現(xiàn)語言,C語言開發(fā)的GIS軟件具有計(jì)算效率高的特點(diǎn),如GRASS、QGIS[6-7]等,后者支持創(chuàng)建、編輯、可視化和分析地理空間信息,可運(yùn)行于Windows、Mac、Linux操作系統(tǒng);②以Java為開發(fā)語言,如uDig[8]等,它支持?jǐn)?shù)據(jù)的獲取、編輯和可視化,能夠?qū)崿F(xiàn)復(fù)雜的空間操作功能;③利用.NET語言開發(fā),如MapWindow GIS[9]等。

    GIS軟件代碼的開源,既降低了使用者的開發(fā)成本,又可使其借助源碼深入研究軟件算法機(jī)理,擴(kuò)展軟件功能,滿足個(gè)性化的應(yīng)用需求。因此,開源GIS軟件具有強(qiáng)大的生命力,GIS軟件代碼開源成為適應(yīng)與促進(jìn)GIS技術(shù)發(fā)展趨勢(shì)的選擇。但目前國際上主流的開源桌面GIS軟件[6-9]沒有一個(gè)是我國自主研發(fā)的,不利于我國GIS軟件技術(shù)的發(fā)展。

    此外,當(dāng)前GIS軟件技術(shù)向著滿足應(yīng)用與需求的多樣性、設(shè)備與操作系統(tǒng)的多樣性、開放性、云特性等幾個(gè)方面發(fā)展。這就要求GIS軟件需要具備跨平臺(tái)特征。

    因此,本文將設(shè)計(jì)和實(shí)現(xiàn)國內(nèi)第一個(gè)專業(yè)的開源桌面GIS軟件SuperMap iDesktop Cross,即采用C++語言開發(fā)統(tǒng)一GIS功能內(nèi)核,在保證軟件高性能的同時(shí),使其具備跨平臺(tái)特征;采用適合Linux操作系統(tǒng)的Java語言開發(fā)軟件用戶界面,大大降低Linux上軟件界面的開發(fā)難度,同時(shí)遵循OSGi動(dòng)態(tài)模型框架標(biāo)準(zhǔn);采用Java本地接口(java native interface,JNI)技術(shù),為GIS功能內(nèi)核封裝應(yīng)用程序編程接口(application programming interface,API)。使用者可以借助API進(jìn)行定制開發(fā),幫助完善目前國內(nèi)唯一的跨平臺(tái)開源桌面GIS軟件。

    1 跨平臺(tái)桌面GIS軟件系統(tǒng)架構(gòu)

    本文設(shè)計(jì)和實(shí)現(xiàn)的跨平臺(tái)開源桌面GIS軟件不僅支持跨平臺(tái)的桌面GIS應(yīng)用與開發(fā),還支持各類地理空間數(shù)據(jù)和多種空間數(shù)據(jù)庫,并且提供地理空間數(shù)據(jù)處理與管理、二三維一體化、空間分析、制圖與可視化等GIS功能,支持定制開發(fā)(如圖1所示)。其源碼已于2015年9月開源(http:∥git.oschina.net/supermap/SuperMap-iDesktop-Cross),借助Git進(jìn)行分布式版本管理。

    圖1 跨平臺(tái)開源桌面GIS軟件系統(tǒng)架構(gòu)

    1.1 軟件實(shí)現(xiàn)

    C++和Java都是具備成熟跨平臺(tái)特征的高級(jí)語言[10]??紤]到GIS應(yīng)用的復(fù)雜性及其對(duì)GIS軟件性能的高要求,本研究首先選用C++語言,在Windows操作系統(tǒng)上實(shí)現(xiàn)GIS功能(即開發(fā)GIS的C++組件),保證GIS軟件的高性能。同時(shí),借助自動(dòng)化腳本和持續(xù)集成技術(shù),將在Windows上編寫的組件代碼,交由持續(xù)集成系統(tǒng)自動(dòng)觸發(fā)不同指令集架構(gòu)(X86、ARM、POWER、MIPS等)的CPU平臺(tái)下的代碼編譯與測試,使得GIS C++組件能在不同架構(gòu)CPU平臺(tái)上正常工作,保障軟件的跨平臺(tái)特征。此外,編寫了大量的基礎(chǔ)庫,如同時(shí)支持大小端CPU和多國語言的字符串類型(UGString),支持不同平臺(tái)下數(shù)據(jù)高效存儲(chǔ)與管理的空間數(shù)據(jù)庫引擎(SuperMap SDX+)等,減少了不同架構(gòu)CPU平臺(tái)對(duì)第三方的依賴。

    在上述工作的基礎(chǔ)上,利用JNI技術(shù)對(duì)GIS的C++組件進(jìn)行封裝,實(shí)現(xiàn)可通過Java語言調(diào)用的API;最后基于Java Swing圖形界面技術(shù)實(shí)現(xiàn)標(biāo)準(zhǔn)工具條方式的界面布局,完成桌面GIS的功能展現(xiàn)和用戶交互體驗(yàn)(如圖2所示)。

    圖2 SuperMap iDesktop Cross的用戶界面

    1.2 軟件功能

    本文開發(fā)的跨平臺(tái)桌面GIS軟件,具備地理空間數(shù)據(jù)管理、數(shù)據(jù)處理、空間分析、空間可視化、二三維一體化等功能(如圖1所示)。

    在數(shù)據(jù)管理方面,它支持常用的空間數(shù)據(jù)及其屬性數(shù)據(jù)的管理,解決了Linux操作系統(tǒng)的數(shù)據(jù)生產(chǎn)問題;可導(dǎo)入多種GIS/非GIS數(shù)據(jù)格式,并可將不同類型的數(shù)據(jù)導(dǎo)出為相應(yīng)的GIS數(shù)據(jù)格式。

    基于該軟件可實(shí)現(xiàn)讀取和存儲(chǔ)各種類型的地理空間數(shù)據(jù),包括矢量數(shù)據(jù)、影像數(shù)據(jù)、三維數(shù)據(jù)、傾斜攝影數(shù)據(jù)等;也可訪問百度地圖、OpenStreet Maps、SuperMap Online、OGC服務(wù)等,節(jié)約數(shù)據(jù)加工成本。對(duì)不同類型不同來源的地理空間數(shù)據(jù),可實(shí)現(xiàn)多種空間數(shù)據(jù)引擎存儲(chǔ)、創(chuàng)建或讀取,包括SQL Plus、Oracle Spatial、DB2、KingBase等,使得數(shù)據(jù)存儲(chǔ)的選擇多樣化。

    在數(shù)據(jù)處理方面,基于該軟件可實(shí)現(xiàn)繪制、復(fù)制、粘貼點(diǎn)、線、面等各類對(duì)象;可對(duì)地理空間數(shù)據(jù)設(shè)置投影或進(jìn)行投影轉(zhuǎn)換,滿足不同投影下數(shù)據(jù)的處理、分析和可視化需求;可對(duì)矢量數(shù)據(jù)創(chuàng)建空間索引,對(duì)柵格數(shù)據(jù)創(chuàng)建影像金字塔,提高數(shù)據(jù)的瀏覽效率;還可對(duì)矢量數(shù)據(jù)進(jìn)行拓?fù)錂z查、拓?fù)錁?gòu)面等拓?fù)涮幚恚箶?shù)據(jù)符合使用規(guī)則,保證數(shù)據(jù)質(zhì)量,滿足后續(xù)應(yīng)用(如圖3所示)。

    圖3 SuperMap iDesktop Cross的拓?fù)涔δ?/p>

    利用本文研發(fā)的軟件進(jìn)行地理空間數(shù)據(jù)可視化時(shí),可對(duì)點(diǎn)、線、面、文本進(jìn)行風(fēng)格渲染和專題表達(dá),制作如單值、范圍分段、標(biāo)簽等專題圖;可對(duì)不同圖層設(shè)置不同的可見比例尺,指定顯示規(guī)則,保障地圖顯示的美觀性,并提高顯示效率;可將已配置好的地圖保存為地圖模板,方便將模板應(yīng)用于其他地圖。

    該軟件還具備二三維一體化GIS功能,實(shí)現(xiàn)二維數(shù)據(jù)在三維場景中顯示,并進(jìn)行風(fēng)格設(shè)置;可新建三維場景,包括加載場景目標(biāo)、設(shè)置場景亮度模式、實(shí)現(xiàn)多源數(shù)據(jù)的顯示和瀏覽;通過對(duì)場景圖層設(shè)置可見高度范圍,可提升場景的瀏覽效率。

    1.3 軟件定制開發(fā)

    OSGi被認(rèn)為是面向Java語言的動(dòng)態(tài)模型系統(tǒng)。從軟件開發(fā)的角度而言,OSGi具有組件化解耦合和Equinox統(tǒng)一調(diào)度兩個(gè)突出的優(yōu)點(diǎn)(如圖4所示)。即可在不重啟容器的情況下,動(dòng)態(tài)安裝、卸載、啟動(dòng)和停止軟件中的不同模塊;對(duì)軟件中的某一特定模塊,容器可同時(shí)運(yùn)行該模塊的多個(gè)版本。本文采用OSGi技術(shù)框架,遵循OSGi國際擴(kuò)展標(biāo)準(zhǔn),借助Java語言實(shí)現(xiàn)SuperMap iDesktop Cross的二次開發(fā)框架。

    本文設(shè)計(jì)實(shí)現(xiàn)的二次開發(fā)框架包含13個(gè)Java API接口,供二次開發(fā)接入和擴(kuò)展。這些接口按照功能的不同,可分為6類:①GIS的C++內(nèi)核接口;②數(shù)據(jù)轉(zhuǎn)換接口、數(shù)據(jù)編輯接口、數(shù)據(jù)處理接口、數(shù)據(jù)拓?fù)浣涌?、?shù)據(jù)瀏覽與可視化接口;③地圖編輯接口、地圖瀏覽和可視化接口;④表格瀏覽與可視化接口;⑤空間分析接口;⑥輔助接口、控制接口、框架接口。使用者可根據(jù)自身需求,在具備良好擴(kuò)展性的OSGi框架下,利用這些API接口,實(shí)現(xiàn)更多新的GIS功能模塊。

    圖4 采用OSGi框架的價(jià)值

    2 跨平臺(tái)桌面GIS軟件性能評(píng)估

    筆者簡單比較了不同操作系統(tǒng)下跨平臺(tái)桌面GIS軟件的性能。在國產(chǎn)Linux操作系統(tǒng)(如優(yōu)麒麟)下,它的界面、功能和操作方式,如地圖瀏覽(縮放、平移)、地圖效果展示等,與在Windows操作系統(tǒng)下是一致的。這表明該軟件在不同操作系統(tǒng)下,用戶使用感受差別不大。這對(duì)于需要從Windows操作系統(tǒng)遷移到國產(chǎn)Linux操作系統(tǒng)的GIS桌面軟件使用者尤其重要,不會(huì)產(chǎn)生新的軟件學(xué)習(xí)成本。

    除了使用感受差別不大之外,桌面GIS軟件高性能的保持是更重要的方面。以二三維一體化為例,這一功能在不同操作系統(tǒng)下性能相似,如圖5所示。

    圖5 SuperMap iDesktop Cross的二三維一體化GIS

    根據(jù)開發(fā)語言本身的特點(diǎn),筆者比較了SuperMap iDesktop Cross與QGIS、uDig的異同。通過收集資料表明,QGIS由于采用C++語言編寫,C++編譯結(jié)果為目標(biāo)機(jī)器指令,沒有中間層帶來的性能損耗,因此QGIS性能高。uDig采用Java編譯編寫,Java編譯結(jié)果為面向Java虛擬機(jī)(Java Virtual Machine,JVM)的字節(jié)碼,運(yùn)行時(shí)由JVM解析執(zhí)行。JVM作為源碼和目標(biāo)機(jī)器指令之間的中間層,其存在引起性能損耗。本文采用C++語言開發(fā)GIS功能內(nèi)核,并封裝為Java接口,因此開發(fā)的GIS軟件不僅具備高性能,還具備QGIS、uDig所不具備的三維GIS功能(見表1)。

    表1 SuperMap iDesktop Cross、QGIS、uDig功能比較

    3 結(jié)束語

    隨著IT技術(shù)的發(fā)展,Linux操作系統(tǒng)在越來越多的領(lǐng)域獲得人們的青睞,GIS軟件逐漸向Linux靠攏和融入。但我國一直缺乏能運(yùn)行于Linux操作系統(tǒng)的專業(yè)桌面GIS軟件,使得在Linux上進(jìn)行地理空間數(shù)據(jù)的處理、制圖和空間分析等GIS功能難以實(shí)現(xiàn)。

    本文設(shè)計(jì)和實(shí)現(xiàn)了國內(nèi)第一個(gè)能夠跨平臺(tái)運(yùn)行的專業(yè)GIS桌面軟件Supermap iDesktop Cross,填補(bǔ)了這一空白,使得研究者可在Linux上進(jìn)行全功能的地理空間數(shù)據(jù)處理與操作。采用Java語言開發(fā)了用戶交互界面,基于C++語言開發(fā)的GIS功能內(nèi)核,保障了不同操作系統(tǒng)下GIS軟件的高性能。這對(duì)數(shù)據(jù)密集型、計(jì)算密集型的GIS應(yīng)用非常重要。

    本文研究設(shè)計(jì)和實(shí)現(xiàn)的開源桌面GIS軟件具備跨平臺(tái)特性,不僅包括不同操作系統(tǒng),還包括不同架構(gòu)(X86、ARM等)的CPU指令集和多種國產(chǎn)芯片(龍芯3號(hào)、飛騰FT-1500A、安騰等)。該軟件是SuperMap GIS產(chǎn)品體系中的桌面GIS軟件,SuperMap GIS產(chǎn)品體系是唯一全系列產(chǎn)品支持國產(chǎn)CPU的大型GIS平臺(tái)軟件。

    長期以來,桌面GIS軟件都是作為地理空間數(shù)據(jù)處理和制圖應(yīng)用的工具軟件,這類軟件發(fā)展到現(xiàn)在,已經(jīng)由純粹的工具軟件發(fā)展為可擴(kuò)展的開發(fā)平臺(tái)。本文開發(fā)的開源桌面GIS軟件的API基于Java語言開發(fā),為Java技術(shù)人員提供了GIS桌面軟件擴(kuò)展開發(fā)的新領(lǐng)域。但它的擴(kuò)展開發(fā)絕不局限于此,筆者已將其Java代碼在開源社區(qū)(包括開源中國OsChina)上全部開源,使用者除可進(jìn)行擴(kuò)展開發(fā)外,還可進(jìn)行深度修改和定制。

    跨平臺(tái)開源桌面GIS軟件的研發(fā)與實(shí)現(xiàn),使得人們不僅可以在包括Linux在內(nèi)的更廣泛的操作系統(tǒng)中使用GIS桌面軟件,還可以了解其內(nèi)部運(yùn)行機(jī)理,甚至可親自參與其開發(fā)和改進(jìn)過程,共同推動(dòng)我國GIS軟件技術(shù)的發(fā)展。

    [1] RAYMOND E.The Cathedral and the Bazaar[J]. Knowledge Technology amp; Policy,1999,12(3):23-49.

    [2] ZHANG M,YUE P,GUO X. GIScript: Towards an Interoperable Geospatial Scripting Language for GIS Programming[C]∥Proceedings of the Third International Conference on Agro-Geoinformatics. Beijing: IEEE,2014.

    [3] FURIERI A. SpatiaLite,Un Innovativo Spatial DBMS[J]. GEOmedia,2010,14(3): 48-52.

    [4] GDAL-Geospatial Data Abstraction Library[EB/OL].2013-08-30[2016-02-03]. http:∥www.gdal.org/.

    [5] WARMERDAM F,FRASER B,BRUCE C,et al. PROJ. 4-cartographic Projections Library[EB/OL].1993-03-26 [2016-02-03].http:∥github.com/OSGeo/proj.4.

    [6] NETELER M,MITASOVA H. Open Source GIS: a GRASS GIS Approach[M]. New York: Springer Science amp; Business Media,2013: 53-82.

    [7] GRAY J. Quantum GIS: the Open-source Geographic Information System[J]. Linux Journal,2008(172): 8.

    [8] RAMSEY P. User Friendly Desktop Internet GIS (uDig) for OpenGIS Spatial Data Infrastructures[EB/OL]. 2003-12-07 [2016-02-03]. http:∥udig.refractions.net/files/docs/.

    [9] AMES D P,MICHAELIS C,DUNSFORD T. Introducing the MapWindow GIS Project[J]. OSGeo Journal,2007,2(1): 1-5.

    [10] 劉愛龍,杜清運(yùn),陳濤,等.跨平臺(tái)嵌入式地圖可視化機(jī)制研究[J]. 測繪通報(bào),2014(12): 51-55.

    DesignandImplementationofaNewCross-platformOpenSourceGISDesktopSoftware

    CAI Wenwen1,2,WANG Shaohua1,2,3,ZHONG Ershun3,HU Chenpu1,LIU Xiaoni1

    (1. SuperMap Software Co. Ltd., Institution, Beijing 100015, China;2. SuperMap Research Institute of Geographic Information Technology, Beijing 100015, China; 3. Institute of Geographic Sciences and Nature Resources Research, CAS, Beijing 100101, China)

    Requirements for open source and cross platform GIS software are increasing in China. But there is still no open-source cross-platform professional desktop GIS software at present. To meet the requirements, SuperMap iDesktop Cross, an open source and cross platform desktop GIS software, is designed and implemented based on OSGi framework. It consists of GIS core library developed by C++ programming language and user interface developed by Java programming language. SuperMap iDesktop Cross provides functions of data management, data processing, 3D visualization, spatial analysis and API for customization development. It can be used not only on windows operating system for personal computers, but also on Linux and UNIX for servers and high-end servers, which will broaden and deepen the application and development of professional GIS software.

    open source; cross platform; GIS; desktop software; C++; Java

    P208

    A

    0494-0911(2017)01-0122-04

    蔡文文,王少華,鐘耳順,等.跨平臺(tái)開源桌面GIS軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].測繪通報(bào),2017(1):122-125.

    10.13474/j.cnki.11-2246.2017.0027.

    2016-02-18

    北京市科技專項(xiàng)(Z151100003615012;Z141101004414011);中國科學(xué)院重點(diǎn)部署項(xiàng)目(KZZD-EW-07-01-001);國家科技支撐計(jì)劃(2013BAC03B00);資源與環(huán)境信息系統(tǒng)國家重點(diǎn)實(shí)驗(yàn)室自主研究項(xiàng)目(088RAC00YA);測繪公益項(xiàng)目(201512015)

    蔡文文(1986—),女,博士,主要研究方向?yàn)榈乩硇畔⑾到y(tǒng)軟件技術(shù)。E-mail:caiwenwen_bnu@163.com

    王少華。E-mail:wangshaohua@supermap.com

    猜你喜歡
    跨平臺(tái)空間數(shù)據(jù)開源
    五毛錢能買多少頭牛
    跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
    大家說:開源、人工智能及創(chuàng)新
    開源中國開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
    元數(shù)據(jù)驅(qū)動(dòng)的多中心空間數(shù)據(jù)同步方法研究
    開源計(jì)算機(jī)輔助翻譯工具研究
    基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
    基于OPC跨平臺(tái)通信的電機(jī)監(jiān)測與診斷系統(tǒng)
    基于B/S的跨平臺(tái)用戶界面可配置算法研究
    基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲(chǔ)與組織研究
    分宜县| 兰西县| 海宁市| 当阳市| 顺义区| 景洪市| 广南县| 灵寿县| 讷河市| 客服| 霍邱县| 尼玛县| 怀集县| 简阳市| 剑川县| 揭西县| 杨浦区| 肥西县| 永泰县| 娄烦县| 石景山区| 江华| 辽阳市| 福贡县| 师宗县| 临沭县| 娄烦县| 额尔古纳市| 定兴县| 天等县| 甘德县| 淅川县| 白水县| 吴江市| 泾川县| 宿州市| 瓮安县| 大城县| 青阳县| 清原| 云和县|