基于(yú) Qt 的(de)空間數據存儲格式檢查軟件的(de)設計與實現

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

( 1. 地圖生活(北京)信息技術有限公司,北京 100015; 2. 超圖地(dì / de)理信息技術研究所,北京 100015;3. 中國(guó)科學院地(dì / de)理科學與資源研究所,北京 100101; 4. 北京航空航天大(dà)學,北京 100191;5. 北京市測繪設計研究院,北京 100038)

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

摘要(yào / yāo):面對日益增長的(de)空間數據,網絡環境較差的(de)地(dì / de)圖、地(dì / de)理信息應用服務系統面臨着存儲容量有限、地(dì / de)理空間數據格式不(bù)開放的(de)挑戰。而(ér)現有的(de)許多地(dì / de)理空間數據存儲依賴于(yú)平台,還需要(yào / yāo)克服跨平台帶來(lái)的(de)問題,亟需研究設計統一(yī / yì /yí)的(de)數據存儲标準來(lái)解決空間數據格式不(bù)一(yī / yì /yí)緻、不(bù)同 GIS 平台數據轉換過程複雜等問題。

關鍵詞: GIS 數據存儲格式檢查,GeoPackage,SQLite,Qt

在(zài)網絡連接狀況較差的(de)環境下,移動設備上(shàng)的(de)地(dì / de)圖、地(dì / de)理信息應用服務常常面臨着存儲容量有限、地(dì / de)理空間數據格式不(bù)開放的(de)問題。每個(gè)地(dì / de)圖、地(dì / de)理空間應用都需要(yào / yāo)自己潛在(zài)的(de)、專有的(de)地(dì / de)理空間數據存儲,而(ér)這(zhè)些特定的(de)空間數據存儲可能含有相同的(de)地(dì / de)理空間數據,從而(ér)對有限的(de)可用存儲空間形成浪費。同時(shí),不(bù)同的(de)地(dì / de)圖、地(dì / de)理空間應用程序爲(wéi / wèi)了(le/liǎo)共享相同的(de)數據,還需要(yào / yāo)頻繁地(dì / de)進行轉換、複制和(hé / huò)同步。此外,現有一(yī / yì /yí)些地(dì / de)理空間數據存儲依賴于(yú) GIS 平台軟件,不(bù)同平台數據的(de)共享常常需要(yào / yāo)複雜的(de)轉換。

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

1 研究現狀

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

GeoPackage 是(shì)一(yī / yì /yí)個(gè)獨立于(yú)平台的(de) SQLite 數據庫文件,它包含 GeoPackage 數據和(hé / huò)元數據表、一(yī / yì /yí)緻性聲明,以(yǐ)及格式限定和(hé / huò)内容約束。一(yī / yì /yí)個(gè) GeoPack-age 可能是(shì)“空”的(de),它包括沒有行記錄内容的(de) GIS要(yào / yāo)素和(hé / huò)瓦片矩陣金字塔數據表; 還有的(de)包含 GIS 要(yào / yāo)素類型記錄或瓦片矩陣金字塔圖像。而(ér)元數據則包含了(le/liǎo)數據格式定義等信息,用于(yú)識别外部數據源。同時(shí),GeoPackage 還包含幾何要(yào / yāo)素的(de)空間索引信息及觸 發 器。此 外,一(yī / yì /yí) 個(gè) GeoPackage SQLite 擴 展( Extension) 是(shì)一(yī / yì /yí)個(gè) SQLite 可加載的(de)擴展,可連接到(dào)一(yī / yì /yí)個(gè)具有指定配置需求的(de) SQLite 庫,以(yǐ)提供 SQL API 訪問 GeoPackage 文件。

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

整合的(de) Qt 平台具有較強的(de)跨平台移植性,其拓展 Qt 支持桌面、嵌入式和(hé / huò)移動平台。對于(yú)桌面操作系統,可以(yǐ)較好地(dì / de)支持 Microsoft Windows 7 /8、Linux、 Solaris、Digital UNIX ( OSF /1、Tru64) 等衆多操作系統。移動平台中,可以(yǐ)較好地(dì / de)支持 Android、iOS 和(hé / huò)Windows Phone 8。開發人(rén)員可以(yǐ)通過啓用開發簡便性爲(wéi / wèi)多個(gè)目标部署,并平滑地(dì / de)過渡到(dào)新的(de)開發模式以(yǐ)滿足觸摸屏和(hé / huò) Tablet 的(de)需求,極大(dà)地(dì / de)簡化了(le/liǎo)開發過程。


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