基于 Qt 的空間數(shù)據(jù)存儲(chǔ)格式檢查軟件的設(shè)計(jì)與實(shí)現(xiàn)

左堯,王少華,鐘耳順,鐘陽,黃科佳,劉永軒

( 1. 北京超圖軟件股份有限公司,北京 100015; 2. 超圖地理信息技術(shù)研究所,北京 100015;3. 中國(guó)科學(xué)院地理科學(xué)與資源研究所,北京 100101; 4. 北京航空航天大學(xué),北京 100191;5. 北京市測(cè)繪設(shè)計(jì)研究院,北京 100038)

論文來源:《測(cè)繪通報(bào)》2017年 第4 期

摘要:面對(duì)日益增長(zhǎng)的空間數(shù)據(jù),網(wǎng)絡(luò)環(huán)境較差的地圖、地理信息應(yīng)用服務(wù)系統(tǒng)面臨著存儲(chǔ)容量有限、地理空間數(shù)據(jù)格式不開放的挑戰(zhàn)。而現(xiàn)有的許多地理空間數(shù)據(jù)存儲(chǔ)依賴于平臺(tái),還需要克服跨平臺(tái)帶來的問題,亟需研究設(shè)計(jì)統(tǒng)一的數(shù)據(jù)存儲(chǔ)標(biāo)準(zhǔn)來解決空間數(shù)據(jù)格式不一致、不同 GIS 平臺(tái)數(shù)據(jù)轉(zhuǎn)換過程復(fù)雜等問題。

關(guān)鍵詞: GIS 數(shù)據(jù)存儲(chǔ)格式檢查,GeoPackage,SQLite,Qt

在網(wǎng)絡(luò)連接狀況較差的環(huán)境下,移動(dòng)設(shè)備上的地圖、地理信息應(yīng)用服務(wù)常常面臨著存儲(chǔ)容量有限、地理空間數(shù)據(jù)格式不開放的問題。每個(gè)地圖、地理空間應(yīng)用都需要自己潛在的、專有的地理空間數(shù)據(jù)存儲(chǔ),而這些特定的空間數(shù)據(jù)存儲(chǔ)可能含有相同的地理空間數(shù)據(jù),從而對(duì)有限的可用存儲(chǔ)空間形成浪費(fèi)。同時(shí),不同的地圖、地理空間應(yīng)用程序?yàn)榱斯蚕硐嗤臄?shù)據(jù),還需要頻繁地進(jìn)行轉(zhuǎn)換、復(fù)制和同步。此外,現(xiàn)有一些地理空間數(shù)據(jù)存儲(chǔ)依賴于 GIS 平臺(tái)軟件,不同平臺(tái)數(shù)據(jù)的共享常常需要復(fù)雜的轉(zhuǎn)換。

為了克服這些挑戰(zhàn),并形成一個(gè)完整、統(tǒng)一的數(shù)據(jù)共享存儲(chǔ)格式,本研究設(shè)計(jì)了一個(gè)開放的、基于標(biāo)準(zhǔn)的、獨(dú)立于應(yīng)用和平臺(tái)的、便攜的、可互操作的、自描述的 GeoPackage( GPKG) 數(shù)據(jù)容器存儲(chǔ)標(biāo)準(zhǔn)。它定義了多尺度直接使用 GIS 地理空間數(shù)據(jù)的GeoPackage SQLite 擴(kuò)展。該拓展保障了數(shù)據(jù)模型和數(shù)據(jù)集的完整性,用戶可以直接訪問和更新本地存儲(chǔ)格式中的數(shù)據(jù),來自不同客戶端數(shù)據(jù)請(qǐng)求將得到一致的響應(yīng)結(jié)果。同時(shí),筆者還實(shí)現(xiàn)數(shù)據(jù)容器格式的自動(dòng)檢查判斷,可以有效支持多個(gè)地圖、地理空間應(yīng)用,如固定的產(chǎn)品分布、局部數(shù)據(jù)的收集和地理空間分析,解決棘手的地理空間產(chǎn)品生產(chǎn)和分析任務(wù)?;诖?,本研究基于軟件工程設(shè)計(jì)原理,在 Qt、C + + 編程環(huán)境下,研發(fā)了 GeoPackage GIS 數(shù)據(jù)格式檢查軟件,實(shí)現(xiàn)了 GeoPackage GIS 數(shù)據(jù)的自動(dòng)化、快速檢查,可以為 GIS 數(shù)據(jù)格式存儲(chǔ)標(biāo)準(zhǔn)化提供幫助和支持。

1 研究現(xiàn)狀

地理信息是一種重要的戰(zhàn)略性信息資源,各國(guó)政府和地理信息組織機(jī)構(gòu)都十分重視空間數(shù)據(jù)標(biāo)準(zhǔn)化工作,已經(jīng)形成了多種 GIS 數(shù)據(jù)存儲(chǔ)格式。但是,空間數(shù)據(jù)的模型表達(dá)具有較大的復(fù)雜性,在數(shù)據(jù)傳輸、數(shù)據(jù)擴(kuò)展、訪問效率等方面各有優(yōu)缺點(diǎn)。有些數(shù)據(jù)格式基于 ASCII 編碼,可讀性較好,但是存取訪問效率低下,如美國(guó)的 SDTS 格式、我國(guó)的地理空間數(shù)據(jù)交換格式、標(biāo)準(zhǔn)的 GML 格式等。有些數(shù)據(jù)格式基于二進(jìn)制數(shù)據(jù)格式,并帶有輔助性索引文件,具有較好的數(shù)據(jù)壓縮和訪問效率,但是簡(jiǎn)單性和擴(kuò)展性則受到一定限制,如 ArcInfo 的 Coverage 文件格式、AutoCAD的DWG 文件格式。而基于標(biāo)準(zhǔn)格式的、獨(dú)立于平臺(tái)的、基于 SQLite 數(shù)據(jù)庫的文件格式 GeoPackage 可較好地實(shí)現(xiàn) GIS 數(shù)據(jù)的存儲(chǔ)管理。

GeoPackage 是一個(gè)獨(dú)立于平臺(tái)的 SQLite 數(shù)據(jù)庫文件,它包含 GeoPackage 數(shù)據(jù)和元數(shù)據(jù)表、一致性聲明,以及格式限定和內(nèi)容約束。一個(gè) GeoPack-age 可能是“空”的,它包括沒有行記錄內(nèi)容的 GIS要素和瓦片矩陣金字塔數(shù)據(jù)表; 還有的包含 GIS 要素類型記錄或瓦片矩陣金字塔圖像。而元數(shù)據(jù)則包含了數(shù)據(jù)格式定義等信息,用于識(shí)別外部數(shù)據(jù)源。同時(shí),GeoPackage 還包含幾何要素的空間索引信息及觸 發(fā) 器。此 外,一 個(gè) GeoPackage SQLite 擴(kuò) 展( Extension) 是一個(gè) SQLite 可加載的擴(kuò)展,可連接到一個(gè)具有指定配置需求的 SQLite 庫,以提供 SQL API 訪問 GeoPackage 文件。

Qt 是一個(gè)跨平臺(tái)的 C + + 圖形用戶界面庫,由Qt、基于 FrameBuffer 的 Qtopia Core、開發(fā)工具 Qt De-signer 和國(guó)際化工具 Qt Linguist 幾部分組成。Qt 5是目前軟件開發(fā)基本框架的最新版本,具備更高效和靈活的研發(fā)模式。Qt 具有良好封裝機(jī)制,模塊化程度高、可重用性好。同時(shí),Qt 提供了一種稱為 sig-nals /slots 的安全類型來替代 callback,大大提高了消息傳遞的效率。

整合的 Qt 平臺(tái)具有較強(qiáng)的跨平臺(tái)移植性,其拓展 Qt 支持桌面、嵌入式和移動(dòng)平臺(tái)。對(duì)于桌面操作系統(tǒng),可以較好地支持 Microsoft Windows 7 /8、Linux、 Solaris、Digital UNIX ( OSF /1、Tru64) 等眾多操作系統(tǒng)。移動(dòng)平臺(tái)中,可以較好地支持 Android、iOS 和Windows Phone 8。開發(fā)人員可以通過啟用開發(fā)簡(jiǎn)便性為多個(gè)目標(biāo)部署,并平滑地過渡到新的開發(fā)模式以滿足觸摸屏和 Tablet 的需求,極大地簡(jiǎn)化了開發(fā)過程。


更多內(nèi)容請(qǐng)點(diǎn)擊下方的PDF下載