下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
多源空間數(shù)據(jù)無縫集成(SIMS)技術研究
[摘要]地理信息系統(tǒng)的迅速發(fā)展和廣泛應用積累了大量數(shù)據(jù)資源,它們分別存儲為不同數(shù)據(jù)格式,為數(shù)據(jù)綜合利用帶來不便。多源空間數(shù)據(jù)無縫集成(SIMS)技術實現(xiàn)了一種特殊的數(shù)據(jù)訪問機制,不僅提供了直接存取多種數(shù)據(jù)格式的能力,而且使GIS軟件軟件具有跨數(shù)據(jù)源復合分析功能。本文闡述了SIMS技術體系結(jié)構,并探討了SIMS技術在GIS軟件開發(fā)中的應用。[關鍵詞]地理信息系統(tǒng)多源數(shù)據(jù)多源空間數(shù)據(jù)無縫集成虛擬空間數(shù)據(jù)引擎一、概述經(jīng)過三十多年的發(fā)展,隨著地理信息系統(tǒng)(GIS)的廣泛應用,積累了大量GIS數(shù)據(jù)資源。由于使用了不同的GIS軟件,這些數(shù)據(jù)分別存儲為不同格式和不同結(jié)構。為了更好地綜合利用這些數(shù)據(jù),通常的做法是使用GIS軟件提供的數(shù)據(jù)格式轉(zhuǎn)換功能,轉(zhuǎn)換為某種統(tǒng)一格式。眾所周知,不同軟件數(shù)據(jù)格式之間的轉(zhuǎn)換往往會造成一定的信息損失,如MapInfo的Tab文件轉(zhuǎn)換到Arc/Info的Coverage會丟失線型、顏色等與顯示有關的屬性;更為嚴重的是,Arc/Info采用拓撲數(shù)據(jù)結(jié)構,MapInfo數(shù)據(jù)則是非拓撲數(shù)據(jù)結(jié)構,轉(zhuǎn)換之后還需要進行拓撲重建等大量處理工作。另外,數(shù)據(jù)轉(zhuǎn)換一般通過交換格式進行,轉(zhuǎn)換過程復雜。比如,要轉(zhuǎn)換MapInfo的Tab文件到Arc/Info的Coverage,首先需要使用MapInfo軟件把Tab文件輸出為E00或DXF文件,然后運行Arc/Info把E00或DXF文件轉(zhuǎn)為Arc/InfoCoverage。一些單位同時運行著幾個使用不同GIS軟件建立的應用系統(tǒng)。如果數(shù)據(jù)需要不斷更新,為保證不同系統(tǒng)之間數(shù)據(jù)的一致性,需要頻繁進行數(shù)據(jù)格式轉(zhuǎn)換。為解決數(shù)據(jù)格式轉(zhuǎn)換帶來的種種問題,理想的方案是在一個軟件中實現(xiàn)對多種數(shù)據(jù)格式的直接訪問。多源空間數(shù)據(jù)無縫集成—SIMS(SeamlessIntegrationofMultisourceSpatialdata)就是這樣一種技術。二、理解SIMSSIMS是一種無須數(shù)據(jù)格式轉(zhuǎn)換,直接訪問多種數(shù)據(jù)格式的高級空間數(shù)據(jù)集成技術,SIMS技術具有如下特點:多格式數(shù)據(jù)直接訪問。這是SIMS技術的基本功能,由于避免了數(shù)據(jù)格式轉(zhuǎn)換,為綜合利用不同格式的數(shù)據(jù)資源帶來了方便。格式無關數(shù)據(jù)集成。GIS用戶在使用數(shù)據(jù)時,可以不必關心數(shù)據(jù)存儲于何種格式,真正實現(xiàn)格式無關數(shù)據(jù)集成。位置無關數(shù)據(jù)集成。如果使用大型關系數(shù)據(jù)庫(如Oracle和SQLServer)存儲空間數(shù)據(jù),這些數(shù)據(jù)可以存放在網(wǎng)絡服務器、甚至Web服務器,如果使用文件存儲空間數(shù)據(jù),這些數(shù)據(jù)一般是本地的。通過SIMS技術訪問數(shù)據(jù),不僅不必關心數(shù)據(jù)的存儲格式,也不必關心數(shù)據(jù)的存放位置。用戶可以象操作本地數(shù)據(jù)一樣去操作網(wǎng)絡數(shù)據(jù)。多源數(shù)據(jù)復合分析。SIMS技術還允許使用來自不同格式的數(shù)據(jù)直接進行聯(lián)合/復合空間分析。例如,用戶可以使用一個格式為Arc/InfoCoverage的土地利用數(shù)據(jù)集和一個存儲于SDE的行政區(qū)劃數(shù)據(jù)集進行疊加分析,疊加結(jié)果可以存儲到SQLServer數(shù)據(jù)庫。經(jīng)過分析表明,AutoCAD和MicroStation等CAD軟件,在打開文件時,把整個文件內(nèi)容全部讀入內(nèi)存。在這種方式下實現(xiàn)對多種數(shù)據(jù)格式直接訪問的機制比較簡單:打開其他格式文件時在內(nèi)存中進行格式轉(zhuǎn)換,來自無論何種格式的數(shù)據(jù)源,一律轉(zhuǎn)換為軟件自己的格式存儲于內(nèi)存中,所有對數(shù)據(jù)的修改操作都以自己的格式進行,存盤時再轉(zhuǎn)換為原來的結(jié)構。在以上方式下,數(shù)據(jù)可以被全部調(diào)入內(nèi)存其操作的前提。一般而言,CAD圖件大小有限,有些CAD軟件的文件結(jié)構本身就限制了數(shù)據(jù)文件的大小,因此CAD軟件可以做到這一點。GIS軟件需要處理比CAD圖件大得多的地圖數(shù)據(jù),無法全部讀入內(nèi)存。因此,在GIS軟件中實現(xiàn)多源數(shù)據(jù)直接訪問,不能簡單地采用內(nèi)存數(shù)據(jù)格式轉(zhuǎn)換來解決。SIMS技術的核心不是分析、破解和轉(zhuǎn)換其他GIS軟件的二進制文件格式,SIMS提出了一種內(nèi)置于GIS軟件中的特殊數(shù)據(jù)訪問體系結(jié)構。它需要實現(xiàn)不同格式數(shù)據(jù)的管理、調(diào)度、緩存(Cache),并提供不同格式數(shù)據(jù)之間的互操作能力。三、SIMS的體系結(jié)構SIMS技術體系是一種緊湊三層結(jié)構,包括:數(shù)據(jù)消費者(Customer)、數(shù)據(jù)代理(Agency)和數(shù)據(jù)提供者(Provider)。每一層有明確分工:數(shù)據(jù)提供者直接訪問數(shù)據(jù)文件或者數(shù)據(jù)庫,并通過數(shù)據(jù)代理提供給其他模塊使用;數(shù)據(jù)消費者消費和使用數(shù)據(jù)的模塊,通常負責對數(shù)據(jù)的各種分析、處理和表現(xiàn);數(shù)據(jù)代理是維系數(shù)據(jù)消費者和數(shù)據(jù)提供者之間的紐帶,來自提供者的數(shù)據(jù)通過代理這個中介傳遞給消費者,完成一次數(shù)據(jù)訪問(或者數(shù)據(jù)消費),一次數(shù)據(jù)消費行為可能產(chǎn)生新的數(shù)據(jù)(如:迭加分析產(chǎn)生的新圖層、緩沖區(qū)分析產(chǎn)生的緩沖區(qū)多邊形等),這些新的數(shù)據(jù)也是通過代理傳遞給提供者,由提供者完成存盤動作。1、數(shù)據(jù)消費者數(shù)據(jù)消費者指GIS軟件中使用或者消費數(shù)據(jù)的部分。它們包括:拓撲處理、地圖顯示、空間分析、三維表現(xiàn)、專題圖制作、數(shù)據(jù)轉(zhuǎn)換、制圖輸出等等模塊。這些模塊使用數(shù)據(jù),是數(shù)據(jù)消費者。數(shù)據(jù)消費者不直接與存儲數(shù)據(jù)的文件或者數(shù)據(jù)庫打交道,所有對數(shù)據(jù)的訪問都通過數(shù)據(jù)代理完成。2、數(shù)據(jù)代理數(shù)據(jù)代理是聯(lián)系數(shù)據(jù)消費者和數(shù)據(jù)提供者的中介,代理負責把來自提供者的數(shù)據(jù)傳遞給消費者使用,并把消費者產(chǎn)生的新數(shù)據(jù)傳遞給提供者存儲。SIMS技術中的數(shù)據(jù)代理是一個虛擬空間數(shù)據(jù)引擎(VirtualSpatialdataEngine)。該引擎定義了數(shù)據(jù)訪問的框架,但并不實現(xiàn)具體的數(shù)據(jù)訪問功能,因此該引擎是“虛擬”的。3、數(shù)據(jù)提供者數(shù)據(jù)提供者指直接訪問數(shù)據(jù)文件或者數(shù)據(jù)庫的模塊,這些模塊獲取數(shù)據(jù)并通過代理提供給消費者使用,并且把傳回來的數(shù)據(jù)存儲到文件或數(shù)據(jù)庫。SIMS提供了訪問多種格式數(shù)據(jù)的能力,對每一種數(shù)據(jù)格式的訪問,最終通過空間數(shù)據(jù)引擎(SpatialdataEngine)實現(xiàn)。數(shù)據(jù)提供者由一組空間數(shù)據(jù)引擎組成,每個引擎負責訪問一種數(shù)據(jù)格式。比如SQLServer引擎訪問存儲在SQLServer中的空間數(shù)據(jù)、Oracle引擎訪問OracleSpatial數(shù)據(jù)庫、SDE引擎訪問ESRISDE支持的各種數(shù)據(jù)庫、Arc/Info引擎存取Arc/InfoCoverage等等。為方便引擎的管理和調(diào)度,每個引擎具有統(tǒng)一的接口,封裝成一個動態(tài)連接庫—DLL(DynamicLinkingLibrary)。類似于一些軟件的插件(Plug-in或Add-in)機制,引擎DLL存放在特定目錄下,程序啟動時自動搜索該目錄,動態(tài)調(diào)入并注冊。一般而言,空間數(shù)據(jù)引擎只提供存儲、讀取、檢索、管理數(shù)據(jù)和對數(shù)據(jù)的基本處理等功能,不負責進行空間分析和復雜處理。但是基于第三方API(如:OracleSpatial和ESRISDE)開發(fā)的引擎可以提供更多功能。一般而言,空間數(shù)據(jù)引擎動態(tài)連接庫的實現(xiàn)有三種方式,即:標準API函數(shù)DLL、C++類庫DLL和OLE自動化DLL。由于空間數(shù)據(jù)引擎結(jié)構復雜、函數(shù)接口多;標準API函數(shù)DLL中的函數(shù)缺乏層次性,不便使用,而且不符合面向?qū)ο蟪绦蛟O計的潮流,不適合空間數(shù)據(jù)引擎。OLE自動化DLL中可以實現(xiàn)一系列具有標準接口的二進制對象,對象層次清晰,接口標準,適合建立空間數(shù)據(jù)引擎。為了達到更高的數(shù)據(jù)訪問速度,本研究采用了C++類庫DLL。但是,使用C++類的DLL只能使用編譯連接,無法實現(xiàn)DLL的動態(tài)載入。使用C++的虛函數(shù)機制可以較好地解決這個問題。虛擬空間數(shù)據(jù)引擎也是一個單獨的動態(tài)連接庫,這個動態(tài)連接庫定義了數(shù)據(jù)訪問需要的所有類,比如CDataSource*CreateDataSource(){CSqlDataSource*pDataSource=newCSqlDataSource;return(CDataSource*)pDataSource;}該函數(shù)負責創(chuàng)建相應的數(shù)據(jù)源派生類,主調(diào)函數(shù)可以在不知道CDataSource的子類名(此例中為CSqlDataSource)的情況下創(chuàng)建該類的實例。其他的類如數(shù)據(jù)集、記錄集等由數(shù)據(jù)源創(chuàng)建。一旦對象被創(chuàng)建,所有的操作均使用虛基類定義的函數(shù)接口進行,但是實際的運行將會自動調(diào)用子類的函數(shù)。這種方式可以充分利用C++的優(yōu)點,如繼承,多態(tài)、封裝等,而且不影響系統(tǒng)響應速度。盡管從概念模型上看,數(shù)據(jù)提供者總是通過虛擬空間數(shù)據(jù)引擎(數(shù)據(jù)代理)傳遞給消費者,實際上并沒有任何多余的內(nèi)存拷貝和數(shù)據(jù)轉(zhuǎn)換,所謂的數(shù)據(jù)傳遞變成了調(diào)用接口的傳遞,這種傳遞通過C++類庫的虛函數(shù)機制實現(xiàn),不影響效率。因此,SIMS采用的是緊湊三層結(jié)構,與Web三層體系不同。四、SIMS技術在GIS軟件開發(fā)中的應用中國科學院地理信息產(chǎn)業(yè)發(fā)展中心研制的新一代組件式GIS軟件—SuperMap2000采用了SIMS技術。為了適應不同層次應用的需要,SuperMap創(chuàng)造性地實現(xiàn)了以多種方式存儲、管理GIS數(shù)據(jù)。除了支持其他GIS軟件的一些文件格式(如:OracleSpatial和ESRISDE)外,SuperMap自定義的數(shù)據(jù)結(jié)構也提供了多種方式,包括:AccessMDB數(shù)據(jù)庫、SQLServer數(shù)據(jù)庫和OLE復合文檔(SuperMapSDB文件)。這幾種存儲方式適合于建立不同層次的應用。MDB和SDB數(shù)據(jù)一般存儲在本地、SQLServer、Oracle、SDE數(shù)據(jù)庫一般存放在網(wǎng)絡服務器。因此,SuperMap通過SIMS技術進行分析和數(shù)據(jù)處理時,不僅實現(xiàn)了數(shù)據(jù)格式無關,而且實現(xiàn)了存儲位置無關。SuperMap2.0提供的引擎包括:SDB、MDB、SQLServer、Oracle、SDE。其中SDB、MDB、SQLServer使用了SuperMap的內(nèi)部格式,Oracle、SDE基于相應的API開發(fā)工具實現(xiàn)。在以后的版本中,將會逐步提供Arc/InfoCoverage、MicroStationDGN、ArcViewShape、AutoCADDWG等引擎以直接訪問其他GIS/CAD軟件的數(shù)據(jù)格式(圖2)。1、SDB引擎SDB(SuperMapSpatialDatabase)引擎是SuperMap2.0中唯一的文件型空間數(shù)據(jù)引擎。這種引擎采用傳統(tǒng)的文件+數(shù)據(jù)庫混合存儲方式。SDB引擎的一個數(shù)據(jù)工程包括兩個文件,擴展名為SDB的文件存儲空間數(shù)據(jù),采用OLE復合文檔技術;擴展名為SDD的文件為屬性數(shù)據(jù)庫,采用Access的MDB數(shù)據(jù)庫格式。由于SDB文件采用了復合文檔技術,因此提供了在一個SDB工程中存儲多個數(shù)據(jù)集的能力。這一點與Arc/InfoCoverage、MapInfoTable文件等技術不同。SDB主要面向中、小型系統(tǒng)和桌面應用,目的在于提高效率,彌補純數(shù)據(jù)庫引擎在這方面的不足。2、MDB引擎MDB引擎是一種純數(shù)據(jù)庫引擎,采用Access的MDB數(shù)據(jù)庫作為數(shù)據(jù)存儲介質(zhì)?;贛icrosoft的Jet數(shù)據(jù)引擎實現(xiàn)。MDB引擎把空間數(shù)據(jù)和非空間數(shù)據(jù)存儲在同一個MDB數(shù)據(jù)庫中,真正實現(xiàn)了空間數(shù)據(jù)和非空間數(shù)據(jù)的無縫組織,同時便于維護數(shù)據(jù)。一個MDB文件中可以存儲多個數(shù)據(jù)集。與SDB一樣,MDB引擎面向中小型桌面應用系統(tǒng),一個MDB的最大空間容量為1G。3、SQLServer引擎這是一個基于大型數(shù)據(jù)庫SQLServer的純關系數(shù)據(jù)庫空間引擎。SuperMap中采用微軟提供的開發(fā)工具DBLibrary實現(xiàn)。與SDB、MDB引擎一樣,本引擎采用SuperMap自定義的數(shù)據(jù)結(jié)構。SQLServer引擎適合建立大型空間數(shù)據(jù)應用。4、Oracle引擎Oracle也是一種基于純關系數(shù)據(jù)庫的空間數(shù)據(jù)引擎。與前三種引擎不同,Oracle引擎的數(shù)據(jù)結(jié)構采用OracleSpatial的空間數(shù)據(jù)存儲方案。由于OracleSpatial目前缺乏對TIN、DEM等三維數(shù)據(jù)存儲的支持,功能上受到限制。Oracle引擎適合建立大型空
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防水工程檢測合同
- 工業(yè)園區(qū)混凝土路面鋪設合同
- 建筑工程升降機安裝合同
- 跨國建筑企業(yè)人才聘用合同
- 住宅小區(qū)建設項目合同樣本
- 文化活動柴油發(fā)電機租賃協(xié)議
- 籃球館秩序維護保安合同
- 家居裝修后二手房銷售合同模板
- 超市銷售勞務合同范例
- 項目顧問合同三篇
- 時間軸公司發(fā)展歷程企業(yè)大事記PPT模板
- 大學無機及分析化學----氣體練習題及答案
- 北師大版數(shù)學初二上冊知識點總結(jié)
- 鐵路建設項目施工企業(yè)信用評價辦法(鐵總建設〔2018〕124號)
- 模具報價表精簡模板
- 形式發(fā)票模板 PI模板 英文版
- 高考英語單項選擇題題庫題
- 檢驗檢測機構資質(zhì)認定現(xiàn)場評審日程表及簽到表
- 完整版高低壓開關柜投標文件技術標
- 蘭州市行政區(qū)劃代碼表
- 管鮑之交-歷史劇劇本(共4頁)
評論
0/150
提交評論