999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2017-05-11 08:11:33王少華鐘耳順黃科佳劉永軒
測繪通報 2017年4期
關鍵詞:數據庫功能

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

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

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

左 堯1,2,王少華1,2,3,鐘耳順3,鐘 陽1,黃科佳1,4,劉永軒5

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

面對日益增長的空間數據,網絡環境較差的地圖、地理信息應用服務系統面臨著存儲容量有限、地理空間數據格式不開放的挑戰。而現有的許多地理空間數據存儲依賴于平臺,還需要克服跨平臺帶來的問題,亟需研究設計統一的數據存儲標準來解決空間數據格式不一致、不同GIS平臺數據轉換過程復雜等問題。考慮到不同系統GIS平臺、GIS應用程序間數據格式的差異,本研究基于GeoPackage(GPKG)數據容器存儲標準,采用Qt 5.2.0+VS2010開發平臺,C++編程語言,通過三層架構編程模式研發了GIS數據存儲格式的檢查軟件,以解決數據格式不統一的問題。該軟件利用批量數據庫查詢,快速地實現了核心功能項、可選功能項、注冊擴展功能三大類等超過百項功能文件格式的檢查,并輸出詳細的檢查結果,為GIS數據格式存儲標準化提供支持和幫助,可有效解決不同GIS平臺、不同GIS應用程序數據共享時面臨的格式不一致問題,簡化了數據轉換的步驟。

GIS數據存儲格式檢查;GeoPackage;SQLite;Qt

在網絡連接狀況較差的環境下,移動設備上的地圖、地理信息應用服務常常面臨著存儲容量有限、地理空間數據格式不開放的問題。每個地圖、地理空間應用都需要自己潛在的、專有的地理空間數據存儲,而這些特定的空間數據存儲可能含有相同的地理空間數據,從而對有限的可用存儲空間形成浪費。同時,不同的地圖、地理空間應用程序為了共享相同的數據,還需要頻繁地進行轉換、復制和同步。此外,現有一些地理空間數據存儲依賴于GIS平臺軟件,不同平臺數據的共享常常需要復雜的轉換。

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

1 研究現狀

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

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

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

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

2 GeoPackage格式檢查軟件的設計與實現

本軟件基于Qt 5.2.0+VS2010開發平臺,C++編程語言,通過三層架構編程模式實現了GeoPackage GIS數據存儲文件的讀寫檢查,為GIS數據格式文件的標準化、規范化提供幫助。

軟件的設計模式采用三層結構研發模式進行架構設計(如圖1、圖2所示),分為顯示層(user interface,UI)、業務邏輯層(business logic layer,BLL)和數據訪問層(data access layer,DAL)。UI層提供基于Qt的界面交互操作,在軟件中嵌入安裝Qt 5.2插件,以利用其高效的圖形界面顯示功能和豐富的開發接口進行軟件程序設計。在DAL層負責對數據庫文件進行管理和查詢,為了使用SQLite函數對數據庫進行操作,需編譯對應平臺的SQLite動態鏈接庫文件,并將其添加至程序頭文件,編譯生成,即可完成SQLite函數添加。然后,通過SQLite查詢語句即可對Geopackage文件進行操作。BLL層實現數據處理,GeoPackage格式檢查軟件是一個持續分析的過程。通過研發一鍵檢查功能,可以不間斷地對數據庫進行批量檢測,并生成檢測報告。作為補充,還同時提供了單獨項的功能檢測,方便用戶查看某一項功能的執行情況。

圖1 軟件三層架構

圖2 軟件組織架構

本文將從軟件組織架構,具體介紹各個組成部分的實現機理及相互關系。

2.1 軟件交互設計

基于Qt提供的良好的界面環境接口,軟件可以方便快捷地實現界面布局設計。通過實例化界面菜單接口,并設置其顯示屬性,即可完成其界面設置。而讓界面按鈕針對點擊展示出功能,則需要對其進行事件函數的設置及事件連接。不同于MFC模型的消息映射機制,Qt事件通過信號-槽機制實現,它是一種類似于消息傳遞的處理函數。信號槽可以攜帶任意數量和類型的參數,所有從Qobject派生的類都能夠包含信號和槽。

當窗體對象發生狀態改變時,該對象發出消息信號,與其相關聯的槽將被立刻執行,信號-槽機制完全獨立于任何GUI事件循環。在所有的槽返回以后,返回發射函數(如圖3所示)。而槽由C++成員函數組成,多個信號可以與槽相關聯。當與其關聯的信號被發射時,這個槽就會被調用。另外,也可以將多個信號與單個槽進行連接,也可以將單個信號與多個槽進行連接。

圖3 Qt信號槽機制示意圖

2.2 數據庫設計

高效的數據庫管理系統將有助于地理空間數據處理。SQLite是一個輕量級、跨平臺的關系型數據庫,支持視圖、事務、觸發器等操作,通過引用一個動態庫,即可實現調用。此外,還具有強大的可移植性,可運行于Windows、Linux、iOS等主流操作系統及嵌入式操作系統。使用SQLite可大大方便實現跨平臺、快速、高效的地理空間數據格式檢查。

基于SQLite強大的數據讀取分析功能,可以輕松實現對GeoPackage的多功能查詢,高效、完整地進行格式檢查。其中,SQLite3提供了豐富的數據庫操作函數功能,它們是一組C函數接口。基于此,通過使用sqlite3_open()、sqlite3_close()、sqlite3_exec()函數,本軟件分別實現對數據庫文件的打開、關閉、查詢功能。同時,為了對查詢結果集中的數據進行進一步的檢查和設置,還執行了回調函數sqlite_callback()功能,通過將sqlite3_exec()中的參數項設置為回調函數名,即可完成回調查詢,實現嵌套多層次的復雜查詢。

2.3 業務邏輯實現

在格式檢查方面,GIS要素數據表示地理位置實體,包括概念性實體,如行政區;現實世界中的物體,如道路、河流和觀測方法。國際規范為通過關系數據庫SQL存儲、訪問和使用GIS地理空間要素與幾何提供了標準的實踐。

根據國家測繪地理信息局測繪公益項目指定的《地理空間數據內容模型與存儲格式標準化研究項目標準》,筆者對GeoPackage文件的核心部分、可選部分和注冊拓展3部分進行檢查。核心部分檢查功能定義了使用SQLite軟件庫的SQL數據庫模式,使用SQLite作為GeoPackage的基礎,簡化了生產、分發和使用GeoPackages的復雜度,從而保證數據的完整性。具體來講,包含文件拓展名檢查、文件完整性檢查、表定義檢查、表數據值檢查等。可選部分檢查功能定義GeoPackages可能使用或忽略的一個或多個選項,如幾何編碼格式檢查、SQL幾何類型格式檢查、GIS要素用戶表格式檢查、瓦片矩陣格式檢查、縮放級別、瓦片編碼PNG和JPEG格式檢查等。

由于GeoPackage擴展是一個或更多的要求條款的集合,注冊拓展部分檢查功能定義了條款的例子應當包括增加幾何類型、增加SQL幾何函數和增加瓦片圖像格式。增加新的要求條款進行擴展的例子包括增加空間索引、觸發器,增加表、其他的BLOB列編碼和其他的SQL函數。具體包括拓展編碼檢查、Rtree空間索引檢查、幾何類型觸發器檢查、組合要素檢查等。

軟件具備批量檢查的功能,雙擊左側導航窗口中的目錄文件可快速對該GeoPackage文件進行檢查,并以表格和XML文檔兩種形式輸出檢查結果。用戶可以一目了然地看到哪些項通過、哪些項不通過。目前,本研究檢測測試項總共107項,包含了核心功能項(SQLite容器檢查、空間參考系統檢查、表內容檢查)、可選功能項(要素類檢查、瓦片類檢查、模式檢查、元數據檢查、擴展機制檢查)、注冊擴展功能(要素類檢查、瓦片檢查、組合要素檢查)3大類,11小類,以確保GeoPakcageGIS數據格式的完整、規范。如圖4所示。

圖4 空間數據檢查軟件界面示意圖

同時,雙擊某一目錄,可實現對該目錄中所有GeoPackage文件的統一檢查,并以XML文檔形式輸出檢查結果。此外,為了方便單獨檢查某項要求是否滿足,用戶可以在對GeoPakcage文件進行修改后,通過單獨點擊相應的功能進行測試,直至全部通過。具體來講,點擊軟件菜單欄“打開”按鈕,瀏覽至GeoPackage文件目錄,點擊“打開”,軟件會調用數據庫讀取函數,并返回值,即可完成GeoPackage打開功能。同時,系統會記錄上一次GPKG的存放位置,之后提示框會顯示文件是否打開成功,點擊相應的功能項,完成測試。如圖5所示。

圖5 空間數據分類檢查功能

3 結 語

面對存儲容量有限、地理空間數據格式不開放、數據存儲過度依賴平臺的狀況,本研究根據武漢大學測繪公益項目設計生產的GeoPackage(GPKG)數據容器存儲標準,基于Qt 5.2.0+VS2010開發平臺,C++編程語言,通過三層架構編程模式研發了GIS數據存儲格式的檢查軟件,實現了GeoPackageGIS數據存儲文件的自動化、快速檢查,為GIS數據格式存儲標準化提供幫助和支持,可以有效地解決不同平臺間、不同應用程序間數據共享時面臨的格式不一致問題,大大簡化了數據轉換的步驟。

目前,格式檢查軟件僅支持常規的矢量、柵格數據格式,在未來,筆者將進一步集成多種開源、未開源的數據格式,并開發基于多種平臺下的格式檢查軟件,為數據格式檢查提供方便,并將研究探索將空間數據存儲格式檢查軟件部署在云平臺。

[1] GeoPackage Encoding Standard [EB/OL].[2015-08-04]. http:∥www.geopackage.org/spec/.

[2] GeoPackage vector [EB/OL].[2015-08-04]. http:∥www.gdal.org/drv_geopackage.html.

[3] GeoPackage raster [EB/OL].[2015-08-04]. http:∥www.gdal.org/drv_geopackage_raster.html.

[4] OGR API Tutorial [EB/OL].[2015-08-04]. http:∥www.gdal.org/ogr_apitut.html.

[5] RASHIDAN M H, MUSLIMAN I A. GeoPackage as Future Ubiquitous GIS Data Format: A Review[J]. Jurnal Teknologi, 2015, 73(5):47-53.

[6] 崔虎平, 江南. 基于OGR的通用地理數據格式轉換研究[J]. 測繪通報, 2012(S1):579-581.

[7] 陳崇成, 林劍峰, 吳小竹, 等. 基于NoSQL的海量空間數據云存儲與服務方法[J]. 地球信息科學學報, 2013, 15(2):166-174.

[8] 李剛, 朱慶杰, 張秀彥,等. 基于FME的城市GIS基礎空間數據格式轉換[J]. 測繪通報, 2006(4):17-20.

[9] 李志華, 張立亭, 李強,等. 面向標準格式的DWG數據轉換[J]. 測繪與空間地理信息, 2015(1):60-62.

[10] 劉鐵軍, 劉慧平, 夏建勛. 基于組件技術的GIS數據格式轉換研究[J]. 測繪與空間地理信息, 2006, 29(2):35-40.

[11] 劉小偉. GIS空間數據格式轉換技術與方法的研究[D]. 合肥:合肥工業大學, 2009.

[12] 陶曉麗, 張志華, 張麗萍. 基于格網索引的點目標捕捉算法[J]. 測繪與空間地理信息, 2015(10):200-202.

[13] 王軒. 地理信息共享的數據轉換技術與方法的研究[D]. 鄭州:信息工程大學, 2004.

[14] 于雪芹. 基于GML的矢量空間數據轉換方法及應用研究[D]. 武漢:武漢大學, 2005.

[15] 朱進, 胡斌, 邵華, 等. 基于內存數據庫Redis的輕量級GIS地理數據組織[J]. 地球信息科學學報, 2014(2):165-172.

Design and Implementation of GeoPackage Format Checking Software

ZUO Yao1,2,WANG Shaohua1,2,3,ZHONG Ershun3,ZHONG Yang1,HUANG Kejia1,4,LIU Yongxuan5

(1. SuperMap Software Co.Ltd., Beijing 100015, China; 2. SuperMap GIS Technology Institute, Beijing 100015, China; 3. Institute of Geographic Sciences and Nature Resources Research, CAS, Beijing 100101, China; 4. Beihang University, Beijing 100191, China;5. Beijing Institute of Surveying and Mapping, Beijing 100038,China)

Modern society is in an era of information explosion, and digital information is growing at an unprecedented rate. Under poor network environment, geographic information application service system is faced with limited storage capacity. In addition, considering that geospatial data are stored in a variety of computer platforms, it is urgent to study and design a unified data storage standard to solve the inconsistency of spatial data format among the different GIS platforms. Therefore, this study is based on the GeoPackage (GPKG) data container storage standards and Qt5.2.0+VS2010. GeoPackage format checking software was designed to check the format of GeoPackage files, which provides help and support to the standardization of GIS data format. Specifically, the software quickly realized the core functions, optional features and registration optional functions, and can be able to output details of the inspection results, which could effectively solve the problem of inconsistent data format among the different GIS platform and GIS application and simplify the steps of data conversion.

GeoPackage format checking software; GeoPackage;SQLite;Qt

左堯,王少華,鐘耳順,等.基于Qt的空間數據存儲格式檢查軟件的設計與實現[J].測繪通報,2017(4):108-111.

10.13474/j.cnki.11-2246.2017.0132.

2016-07-13;

2017-01-09

國家測繪公益項目(201512015);北京市科技專項(Z151100003615012;Z141101004414011);中國科學院國防科技創新基金項目(CXJ-14-M13);中國科學院重點部署項目(KZZD-EW-07-01-001);國家科技支撐計劃(2013BAC03B00);資源與環境信息系統國家重點實驗室自主研究項目(088RAC00YA);北京市優秀人才項目(201500002685XG242);全國博士后國際交流計劃(20150081);朝陽區博士后基金

左 堯(1989—),男,碩士,主要研究方向為地理信息系統軟件技術。E-mail:zuoyao@supermap.com

王少華

P208

A

0494-0911(2017)04-0108-04

猜你喜歡
數據庫功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關于非首都功能疏解的幾點思考
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 直接黄91麻豆网站| 福利国产微拍广场一区视频在线 | 凹凸国产分类在线观看| 亚洲国语自产一区第二页| 亚洲an第二区国产精品| 9cao视频精品| 免费无码网站| 国产亚卅精品无码| 2021国产乱人伦在线播放| 国产亚洲日韩av在线| 白浆免费视频国产精品视频| 精品无码一区二区三区在线视频| 热久久国产| 欧美一区二区三区香蕉视| 伊人狠狠丁香婷婷综合色| 国产在线视频福利资源站| 动漫精品中文字幕无码| 亚洲精品自拍区在线观看| 91娇喘视频| 亚洲无线观看| 免费福利视频网站| 超薄丝袜足j国产在线视频| 国产97色在线| 国产黄在线观看| 精品人妻AV区| 亚洲欧美天堂网| 日韩色图在线观看| 91人妻日韩人妻无码专区精品| 国产成人精彩在线视频50| 国产永久在线视频| 亚洲AV无码乱码在线观看代蜜桃| 国产欧美视频综合二区 | 精品午夜国产福利观看| 免费看av在线网站网址| 911亚洲精品| 色婷婷在线影院| 国产欧美日韩18| 日韩一区二区三免费高清| 中文字幕人成人乱码亚洲电影| 一级在线毛片| 9啪在线视频| 黄色网页在线播放| 亚洲欧洲日产无码AV| 97视频免费看| 青青草原国产av福利网站| 不卡午夜视频| 成人国产精品2021| 全部免费毛片免费播放| AV无码国产在线看岛国岛| 亚洲最大情网站在线观看| 人妻中文字幕无码久久一区| 欧美激情综合一区二区| jizz国产视频| 亚洲精品在线观看91| 国产精品伦视频观看免费| 亚洲精品色AV无码看| 欧美不卡在线视频| 88av在线看| 亚洲无码一区在线观看| 亚洲国产综合第一精品小说| 色综合五月| 国模粉嫩小泬视频在线观看| 色综合五月| 2021国产在线视频| 久久人妻xunleige无码| 久久99精品久久久久纯品| 国产aaaaa一级毛片| 波多野结衣一区二区三区四区| 亚洲成a人片| 午夜天堂视频| 日韩A级毛片一区二区三区| www.99在线观看| 欧美日韩国产成人在线观看| 天天爽免费视频| 国产特一级毛片| 精品国产成人a在线观看| a毛片在线| 欧美性色综合网| 国产福利一区在线| 婷婷综合色| 一级毛片a女人刺激视频免费| 久久狠狠色噜噜狠狠狠狠97视色|