跨平台開源桌面 GIS 軟件的(de)設計與實現

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

( 1. 地圖生活(北京)信息技術有限公司,北京 100015; 2. 超圖地(dì / de)理信息技術研究所,北京 100015;3. 中國(guó)科學院地(dì / de)理科學與資源研究所,北京 100101)

論文來(lái)源:《測繪通報》2017年 第1期

摘要(yào / yāo):GIS 軟件開源可有效促進 GIS 軟件技術的(de)發展,這(zhè)也(yě)是(shì) GIS 技術發展的(de)趨勢之(zhī)一(yī / yì /yí)。目前,國(guó)内還沒有跨平台的(de)專業桌面 GIS開源軟件。本文研究并實現了(le/liǎo)跨平台的(de)開源桌面 GIS 軟件-SuperMap iDesktop Cross,采用 C++語言實現了(le/liǎo) GIS 功能内核,同時(shí)基于(yú)OSGi 框架,采用 Java 語言實現了(le/liǎo)用戶界面開發。

關鍵詞: 開源,跨平台,GIS,桌面軟件,C++,Java

自 1997 年 Eric Raymond 提出(chū)發展開源軟件的(de)集市模型以(yǐ)來(lái)[1],開源軟件迅速發展,并逐漸進入 GIS領域。開源 GIS 軟件以(yǐ)源碼共享和(hé / huò)合作發展爲(wéi / wèi)理念,在(zài)特定的(de)版權許可下,軟件的(de)版權所有人(rén)允許任何人(rén)以(yǐ)任何目的(de)下載、學習、更改或分發軟件的(de)源代碼。

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

開源 GIS 桌面軟件依據采用的(de)開發語言的(de)不(bù)同,大(dà)體可以(yǐ)分爲(wéi / wèi) 3 類: ①以(yǐ) C 語言爲(wéi / wèi)實現語言,C 語言開發的(de) GIS 軟件具有計算效率高的(de)特點,如 GRASS、 QGIS[6-7]等,後者支持創建、編輯、可視化和(hé / huò)分析地(dì / de)理空間信息,可運行于(yú) Windows、Mac、Linux 操作系統; ②以(yǐ) Java 爲(wéi / wèi)開發語言,如 uDig[8]等,它支持數據的(de)獲取、編輯和(hé / huò)可視化,能夠實現複雜的(de)空間操作功能; ③利用.NET 語言開發,如 MapWindow GIS[9]等。

GIS 軟件代碼的(de)開源,既降低了(le/liǎo)使用者的(de)開發成本,又可使其借助源碼深入研究軟件算法機理,擴展軟件功能,滿足個(gè)性化的(de)應用需求。因此,開源GIS 軟件具有強大(dà)的(de)生命力,GIS 軟件代碼開源成爲(wéi / wèi)适應與促進 GIS 技術發展趨勢的(de)選擇。但目前國(guó)際上(shàng)主流的(de)開源桌面 GIS 軟件[6-9]沒有一(yī / yì /yí)個(gè)是(shì)我國(guó)自主研發的(de),不(bù)利于(yú)我國(guó) GIS 軟件技術的(de)發展。

此外,當前 GIS 軟件技術向着滿足應用與需求的(de)多樣性、設備與操作系統的(de)多樣性、開放性、雲特性等幾個(gè)方面發展。這(zhè)就(jiù)要(yào / yāo)求 GIS 軟件需要(yào / yāo)具備跨平台特征。

因此,本文将設計和(hé / huò)實現國(guó)内第一(yī / yì /yí)個(gè)專業的(de)開源桌面 GIS 軟件 SuperMap iDesktop Cross,即采用C++語言開發統一(yī / yì /yí) GIS 功能内核,在(zài)保證軟件高性能的(de)同時(shí),使其具備跨平台特征; 采用适合 Linux 操作系統的(de) Java 語言開發軟件用戶界面,大(dà)大(dà)降低Linux 上(shàng)軟件界面的(de)開發難度,同時(shí)遵循 OSGi 動态模型框架标準; 采用 Java 本地(dì / de)接口( java native inter-face,JNI) 技術,爲(wéi / wèi) GIS 功能内核封裝應用程序編程接口( application programming interface,API) 。使用者可以(yǐ)借助 API 進行定制開發,幫助完善目前國(guó)内唯一(yī / yì /yí)的(de)跨平台開源桌面 GIS 軟件。

1 跨平台桌面 GIS 軟件系統架構

本文設計和(hé / huò)實現的(de)跨平台開源桌面 GIS 軟件不(bù)僅支持跨平台的(de)桌面 GIS 應用與開發,還支持各類地(dì / de)理空間數據和(hé / huò)多種空間數據庫,并且提供地(dì / de)理空間數據處理與管理、二三維一(yī / yì /yí)體化、空間分析、制圖與可視化等 GIS 功能,支持定制開發 ( 如圖 1 所示) 。其源碼已于(yú) 2015 年 9 月開源( https://gitee.com/supermap/SuperMap-iDesktop-Cross) ,借助Git 進行分布式版本管理。

更多内容請點擊下方的(de)PDF下載