• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2017-05-11 08:11:33王少華鐘耳順黃科佳劉永軒
      測繪通報 2017年4期
      關(guān)鍵詞:數(shù)據(jù)格式空間數(shù)據(jù)數(shù)據(jù)庫

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

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

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

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

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

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

      GIS數(shù)據(jù)存儲格式檢查;GeoPackage;SQLite;Qt

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

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

      1 研究現(xiàn)狀

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

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

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

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

      2 GeoPackage格式檢查軟件的設計與實現(xiàn)

      本軟件基于Qt 5.2.0+VS2010開發(fā)平臺,C++編程語言,通過三層架構(gòu)編程模式實現(xiàn)了GeoPackage GIS數(shù)據(jù)存儲文件的讀寫檢查,為GIS數(shù)據(jù)格式文件的標準化、規(guī)范化提供幫助。

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

      圖1 軟件三層架構(gòu)

      圖2 軟件組織架構(gòu)

      本文將從軟件組織架構(gòu),具體介紹各個組成部分的實現(xiàn)機理及相互關(guān)系。

      2.1 軟件交互設計

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

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

      圖3 Qt信號槽機制示意圖

      2.2 數(shù)據(jù)庫設計

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

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

      2.3 業(yè)務邏輯實現(xiàn)

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

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

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

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

      圖4 空間數(shù)據(jù)檢查軟件界面示意圖

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

      圖5 空間數(shù)據(jù)分類檢查功能

      3 結(jié) 語

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

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

      [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的通用地理數(shù)據(jù)格式轉(zhuǎn)換研究[J]. 測繪通報, 2012(S1):579-581.

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

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

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

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

      [11] 劉小偉. GIS空間數(shù)據(jù)格式轉(zhuǎn)換技術(shù)與方法的研究[D]. 合肥:合肥工業(yè)大學, 2009.

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

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

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

      [15] 朱進, 胡斌, 邵華, 等. 基于內(nèi)存數(shù)據(jù)庫Redis的輕量級GIS地理數(shù)據(jù)組織[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的空間數(shù)據(jù)存儲格式檢查軟件的設計與實現(xiàn)[J].測繪通報,2017(4):108-111.

      10.13474/j.cnki.11-2246.2017.0132.

      2016-07-13;

      2017-01-09

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

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

      王少華

      P208

      A

      0494-0911(2017)04-0108-04

      猜你喜歡
      數(shù)據(jù)格式空間數(shù)據(jù)數(shù)據(jù)庫
      在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
      電子測試(2018年1期)2018-04-18 11:52:49
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      元數(shù)據(jù)驅(qū)動的多中心空間數(shù)據(jù)同步方法研究
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應用
      DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測繪數(shù)據(jù)為例
      基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲與組織研究
      基于ArcGIS的規(guī)劃數(shù)據(jù)格式轉(zhuǎn)換研究
      东兴市| 丹棱县| 霍州市| 浦东新区| 永丰县| 鹤庆县| 静海县| 长岭县| 章丘市| 北碚区| 瑞丽市| 金昌市| 屏东市| 旬阳县| 马边| 双江| 玛沁县| 噶尔县| 永登县| 盐池县| 翼城县| 崇信县| 罗平县| 射洪县| 贵州省| 隆安县| 上蔡县| 瑞金市| 车险| 小金县| 仁寿县| 奇台县| 北流市| 调兵山市| 扎鲁特旗| 轮台县| 泗水县| 北辰区| 延吉市| 丽江市| 东乡县|