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

        ?

        跨平臺開源桌面GIS軟件的設(shè)計與實現(xiàn)

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

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

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

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

        開源;跨平臺;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ù)據(jù)處理的框架[2];②空間數(shù)據(jù)庫,如SpatiaLite,它是開源數(shù)據(jù)庫SQLite的空間擴(kuò)展,支持地理空間查詢[3];③GIS功能庫(Libraries),如已廣泛應(yīng)用于不同操作系統(tǒng)、不同平臺、不同終端的柵格空間數(shù)據(jù)轉(zhuǎn)換庫GDAL[4];④空間參考(地圖投影)工具,如Proj.4[5]等。這些軟件技術(shù)可歸結(jié)為桌面GIS軟件功能的一部分。因此,發(fā)展開源桌面GIS軟件技術(shù)難度較大。

        開源GIS桌面軟件依據(jù)采用的開發(fā)語言的不同,大體可以分為3類:①以C語言為實現(xiàn)語言,C語言開發(fā)的GIS軟件具有計算效率高的特點(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ò)展軟件功能,滿足個性化的應(yīng)用需求。因此,開源GIS軟件具有強(qiáng)大的生命力,GIS軟件代碼開源成為適應(yīng)與促進(jìn)GIS技術(shù)發(fā)展趨勢的選擇。但目前國際上主流的開源桌面GIS軟件[6-9]沒有一個是我國自主研發(fā)的,不利于我國GIS軟件技術(shù)的發(fā)展。

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

        因此,本文將設(shè)計和實現(xiàn)國內(nèi)第一個專業(yè)的開源桌面GIS軟件SuperMap iDesktop Cross,即采用C++語言開發(fā)統(tǒng)一GIS功能內(nèi)核,在保證軟件高性能的同時,使其具備跨平臺特征;采用適合Linux操作系統(tǒng)的Java語言開發(fā)軟件用戶界面,大大降低Linux上軟件界面的開發(fā)難度,同時遵循OSGi動態(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)唯一的跨平臺開源桌面GIS軟件。

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

        本文設(shè)計和實現(xiàn)的跨平臺開源桌面GIS軟件不僅支持跨平臺的桌面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 跨平臺開源桌面GIS軟件系統(tǒng)架構(gòu)

        1.1 軟件實現(xiàn)

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

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

        圖2 SuperMap iDesktop Cross的用戶界面

        1.2 軟件功能

        本文開發(fā)的跨平臺桌面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ù)格式。

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

        在數(shù)據(jù)處理方面,基于該軟件可實現(xiàn)繪制、復(fù)制、粘貼點(diǎn)、線、面等各類對象;可對地理空間數(shù)據(jù)設(shè)置投影或進(jìn)行投影轉(zhuǎn)換,滿足不同投影下數(shù)據(jù)的處理、分析和可視化需求;可對矢量數(shù)據(jù)創(chuàng)建空間索引,對柵格數(shù)據(jù)創(chuàng)建影像金字塔,提高數(shù)據(jù)的瀏覽效率;還可對矢量數(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ù)可視化時,可對點(diǎn)、線、面、文本進(jìn)行風(fēng)格渲染和專題表達(dá),制作如單值、范圍分段、標(biāo)簽等專題圖;可對不同圖層設(shè)置不同的可見比例尺,指定顯示規(guī)則,保障地圖顯示的美觀性,并提高顯示效率;可將已配置好的地圖保存為地圖模板,方便將模板應(yīng)用于其他地圖。

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

        1.3 軟件定制開發(fā)

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

        本文設(shè)計實現(xiàn)的二次開發(fā)框架包含13個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接口,實現(xiàn)更多新的GIS功能模塊。

        圖4 采用OSGi框架的價值

        2 跨平臺桌面GIS軟件性能評估

        筆者簡單比較了不同操作系統(tǒng)下跨平臺桌面GIS軟件的性能。在國產(chǎn)Linux操作系統(tǒng)(如優(yōu)麒麟)下,它的界面、功能和操作方式,如地圖瀏覽(縮放、平移)、地圖效果展示等,與在Windows操作系統(tǒng)下是一致的。這表明該軟件在不同操作系統(tǒng)下,用戶使用感受差別不大。這對于需要從Windows操作系統(tǒng)遷移到國產(chǎn)Linux操作系統(tǒng)的GIS桌面軟件使用者尤其重要,不會產(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)行時由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功能難以實現(xiàn)。

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

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

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

        跨平臺開源桌面GIS軟件的研發(fā)與實現(xiàn),使得人們不僅可以在包括Linux在內(nèi)的更廣泛的操作系統(tǒng)中使用GIS桌面軟件,還可以了解其內(nèi)部運(yùn)行機(jī)理,甚至可親自參與其開發(fā)和改進(jìn)過程,共同推動我國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),陳濤,等.跨平臺嵌入式地圖可視化機(jī)制研究[J]. 測繪通報,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

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

        10.13474/j.cnki.11-2246.2017.0027.

        2016-02-18

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

        蔡文文(1986—),女,博士,主要研究方向為地理信息系統(tǒng)軟件技術(shù)。E-mail:caiwenwen_bnu@163.com

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

        猜你喜歡
        跨平臺空間數(shù)據(jù)開源
        五毛錢能買多少頭牛
        跨平臺APEX接口組件的設(shè)計與實現(xiàn)
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        元數(shù)據(jù)驅(qū)動的多中心空間數(shù)據(jù)同步方法研究
        開源計算機(jī)輔助翻譯工具研究
        基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實現(xiàn)
        基于OPC跨平臺通信的電機(jī)監(jiān)測與診斷系統(tǒng)
        基于B/S的跨平臺用戶界面可配置算法研究
        基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲與組織研究
        偷拍网日本一区二区三区| 免费a级毛片18以上观看精品| 四川少妇大战4黑人| 97色偷偷色噜噜狠狠爱网站97| 最新日本免费一区二区三区 | 全免费a级毛片免费看无码| 欧美性猛交xxxx乱大交3| 国产女人精品视频国产灰线| 丝袜美腿av免费在线观看| 成人性生交大片免费入口| 中文字幕+乱码+中文字幕一区| 欧美在线观看一区二区| 亚洲综合天堂一二三区| 西川结衣中文字幕在线| 免费观看激色视频网站| 在线免费欧美| 日韩精品午夜视频在线| 亚洲精品国产成人片| 免费国精产品自偷自偷免费看| 国产人妖xxxx做受视频| 国产三区二区一区久久 | 成人做爰视频www| 欧美日一本| 亚洲av日韩专区在线观看| 亚洲 卡通 欧美 制服 中文| 99成人精品| 国产黄色一级到三级视频| 亚洲s色大片在线观看| 亚洲不卡在线免费视频| 影音先锋男人av鲁色资源网| 欧美理论在线| 邻居少妇张开腿让我爽视频| 国产 高潮 抽搐 正在播放 | 久热re这里精品视频在线6| 久热香蕉视频| 国产大全一区二区三区| 欧美日本精品一区二区三区| 嗯啊哦快使劲呻吟高潮视频| 国产精品香蕉网页在线播放| 媚药丝袜美女高清一二区| 国产乱人视频在线播放|