論文基于空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用_第1頁(yè)
論文基于空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用_第2頁(yè)
論文基于空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用_第3頁(yè)
論文基于空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.基于空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用劉宏建 牛德力解放軍信息工程大學(xué)測(cè)繪學(xué)院 河南鄭州 450052摘要:本文以利用空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用為主要研究?jī)?nèi)容,從體系結(jié)構(gòu)、核心技術(shù)、工作流程等方面對(duì)該技術(shù)做了詳細(xì)介紹,又以MapInfo Spatialware為例,給出了基于MapInfo Spatialware構(gòu)建GIS應(yīng)用的解決方案。關(guān)鍵字:空間數(shù)據(jù)引擎、SpatialwareAbstract: The main content of the text is the building-up GIS application by using the Spatial Data Engine, whi

2、ch precisely describes its architecture, key-technology, work-flow and etc. And by instance of MapInfo Spatialware, it proposes the solution of the building-up GIS application on the basis of MapInfo Spatialware.1. 引言近年來,隨著關(guān)系數(shù)據(jù)庫(kù)技術(shù)的進(jìn)一步發(fā)展與成熟,采用關(guān)系數(shù)據(jù)庫(kù)來對(duì)空間數(shù)據(jù)和屬性數(shù)據(jù)進(jìn)行一體化存儲(chǔ)和管理,已經(jīng)成為商用GIS平臺(tái)發(fā)展的一個(gè)趨勢(shì)。全關(guān)系型的GIS軟件,利

3、用關(guān)系數(shù)據(jù)庫(kù)解決了空間數(shù)據(jù)的集中控制、網(wǎng)絡(luò)環(huán)境下的共享、并發(fā)控制等問題,明顯地提高了GIS軟件管理空間數(shù)據(jù)的能力??臻g數(shù)據(jù)引擎(Spatial Data Engine),實(shí)質(zhì)上就是基于商用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)構(gòu)建空間數(shù)據(jù)庫(kù),以提供空間數(shù)據(jù)存儲(chǔ)、管理能力的系統(tǒng)。本論文將對(duì)利用空間數(shù)據(jù)引擎構(gòu)建GIS應(yīng)用的一些關(guān)鍵技術(shù)作一下深入的探討。2. 體系結(jié)構(gòu)圖 1 基于空間數(shù)據(jù)引擎構(gòu)造GIS應(yīng)用的系統(tǒng)部署圖基于空間數(shù)據(jù)引擎的GIS應(yīng)用系統(tǒng),可劃分為三個(gè)層次:前臺(tái)客戶端、中間層應(yīng)用服務(wù)器和后臺(tái)的數(shù)據(jù)庫(kù)服務(wù)器。前臺(tái)的客戶端負(fù)責(zé)數(shù)據(jù)顯示、與用戶的交互等工作,它可以是一般的應(yīng)用程序也可以是Web Browser(瀏覽器)

4、。最底層是數(shù)據(jù)庫(kù)服務(wù)器,它可以是不同的數(shù)據(jù)庫(kù)產(chǎn)品,也有可能運(yùn)行在異構(gòu)的操作系統(tǒng)上面,該層又可以稱為數(shù)據(jù)存儲(chǔ)層??臻g數(shù)據(jù)引擎屬于應(yīng)用服務(wù)器層,它向高層的客戶端應(yīng)用提供一套統(tǒng)一的空間數(shù)據(jù)訪問機(jī)制,屏蔽掉低層異構(gòu)數(shù)據(jù)庫(kù)和操作系統(tǒng)的差異;中間層應(yīng)用服務(wù)器按照需求還可以包括Web服務(wù)器、Web地圖服務(wù)器等。中間層應(yīng)用服務(wù)器的作用是:封裝業(yè)務(wù)邏輯、處理Web客戶端的請(qǐng)求、執(zhí)行空間查詢,從數(shù)據(jù)庫(kù)獲得數(shù)據(jù)并返回給客戶端。由于空間數(shù)據(jù)引擎在整個(gè)系統(tǒng)中的核心地位和作用,下面將對(duì)空間數(shù)據(jù)引擎的關(guān)鍵技術(shù)作一下探討。3. 空間數(shù)據(jù)引擎核心技術(shù)剖析(1) 概述在OpenGIS體系結(jié)構(gòu)中,將共享領(lǐng)域服務(wù)分為了15類,共享域

5、服務(wù)的15種基礎(chǔ)服務(wù)反映的是一些基本的、重要的空間數(shù)據(jù)操作功能,例如空間數(shù)據(jù)建模、空間實(shí)體操作、空間查詢、地圖影像操作、坐標(biāo)系管理等??臻g數(shù)據(jù)引擎將空間實(shí)體操作、圖層管理、數(shù)據(jù)交換、空間參考系等核心功能集成起來,對(duì)外提供調(diào)用接口,在構(gòu)造地圖顯示、地圖數(shù)據(jù)編輯、空間分析、數(shù)據(jù)交換等外部系統(tǒng)時(shí),就可以直接對(duì)空間數(shù)據(jù)引擎的功能接口進(jìn)行操作,從而使外部系統(tǒng)自動(dòng)獲得空間數(shù)據(jù)操作的基本功能。從空間數(shù)據(jù)引擎構(gòu)成上考慮,它由空間對(duì)象結(jié)構(gòu)、空間索引和空間函數(shù)三大部分構(gòu)成。(2) 空間對(duì)象結(jié)構(gòu)圖2 Spatialware空間對(duì)象結(jié)構(gòu)空間對(duì)象結(jié)構(gòu)是空間數(shù)據(jù)引擎的基石,它要解決的是地理數(shù)據(jù)如何表達(dá)的問題??臻g對(duì)象結(jié)構(gòu)

6、決定了空間數(shù)據(jù)引擎能表示什么,不能表示什么,空間對(duì)象結(jié)構(gòu)的優(yōu)劣,很大程度上決定了空間數(shù)據(jù)引擎的好壞。以MapInfo Spatialware為例(圖1給出了Spatialware的空間對(duì)象結(jié)構(gòu)圖),ST_Spatial是所有空間數(shù)據(jù)類型的基類,在Spatialware For SQL Server中,它是這樣定義的:EXEC sp_addtype N'ST_Spatial', N'image', N'null'由上可以看出,SP_Spatial也就是BLOB類型(大二進(jìn)制對(duì)象塊),只是換個(gè)名字而已。Spatialware以SP_Spatial為基

7、類,又派生出了ST_Point,ST_Line,ST_Polygon等一系列空間數(shù)據(jù)類型,空間實(shí)體的生成,則要由空間函數(shù)來完成。(3) 空間函數(shù)空間函數(shù)所要解決的是如何操縱空間數(shù)據(jù)與空間分析的問題,它實(shí)質(zhì)上是對(duì)關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)查詢語言(SQL, Structure Query Language)的一種擴(kuò)充,對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行功能擴(kuò)展以適用于空間數(shù)據(jù)。下面是Spatialware中幾種比較重要的空間函數(shù)n 空間實(shí)體構(gòu)造函數(shù) 用于創(chuàng)建空間對(duì)象結(jié)構(gòu)中定義的空間實(shí)體。n 空間聚合函數(shù) 對(duì)空間數(shù)據(jù)構(gòu)成的一個(gè)行集(Rows)進(jìn)行各種方式的計(jì)算,比如:HG_Aggunion函數(shù),用來對(duì)多個(gè)空間實(shí)體求并,返回值是

8、多個(gè)空間實(shí)體的并集;HG_Aggintersection對(duì)空間實(shí)體求交集;HG_Aggboundingbox求一組空間實(shí)體的最小矩形外包等等。n 類型轉(zhuǎn)換函數(shù) 用于Spatialware定義的空間數(shù)據(jù)類型和OGC(Open GIS Consrotinum)規(guī)定的各種數(shù)據(jù)類型的轉(zhuǎn)換。如;HG_AsBinary將ST_Spatial類型轉(zhuǎn)換為OGC定義的Binary類型HG_GeometryFromBinary將OGC定義的Binary類型轉(zhuǎn)換為ST_Spatial類型。n 坐標(biāo)函數(shù) 用于對(duì)空間參考系統(tǒng)(大地橢球、地圖投影)進(jìn)行處理,在該部分,只有一個(gè)函數(shù)HG_CSTransform如下:HG_C

9、STransform(spatial_obj, from_cs, to_cs)該函數(shù)將空間實(shí)體(spatial_obj)從源坐標(biāo)系(from_cs),轉(zhuǎn)換到目的坐標(biāo)系(to_cs)中。n 空間量算函數(shù) 對(duì)空間實(shí)體進(jìn)行各種量算,如計(jì)算長(zhǎng)度、面積、坡度、高程、方位角。n 空間查詢函數(shù) 該部分最重要的函數(shù)是sp_spatial_query,它的功能極其強(qiáng)大,涉及到空間查詢的各種形式。如:exec sp_spatial_query select ID, ST_Area(sw_geometry) as area from land_use order by area該代碼執(zhí)行空間查詢,從土地利用表中查詢

10、土地編號(hào)和地塊面積,并按面積大小排序。(4) 空間索引空間索引要解決的問題是如何快速的找到指定的空間實(shí)體,它依據(jù)空間實(shí)體的位置及分布特征,將整個(gè)區(qū)域的空間實(shí)體用某種數(shù)據(jù)結(jié)構(gòu)組織起來,該數(shù)據(jù)結(jié)構(gòu)中包含該對(duì)象的標(biāo)志信息和獲得該對(duì)象地址所需要的一些信息。在MapInfo Spatialware中,采用的是R樹索引機(jī)制。R樹索引是根據(jù)地物的最小外包矩形建立的,R樹中每一結(jié)點(diǎn)N都對(duì)應(yīng)著磁盤頁(yè)D(N)和空間區(qū)域I(N),如果結(jié)點(diǎn)不是葉結(jié)點(diǎn),則該結(jié)點(diǎn)的所有子結(jié)點(diǎn)的區(qū)域都在I(N)范圍內(nèi),而且存儲(chǔ)在磁盤頁(yè)D(N)中;如果結(jié)點(diǎn)是葉結(jié)點(diǎn),那么磁盤頁(yè)D(N)中存儲(chǔ)的將是區(qū)域I(N)范圍內(nèi)的一系列空間實(shí)體的最小外包矩

11、形。在Spatialware中,對(duì)一個(gè)圖層建立空間索引的方法如下:exec sp_sw_create_rtree'<owner>', '<table_name>', '<spatial_column>','<key_column>'4. 基于MapInfo Spatialware的解決方案基于Spatialware的GIS應(yīng)用,要考慮兩個(gè)問題:一個(gè)空間數(shù)據(jù)庫(kù)的建立;另一個(gè)問題是要考慮客戶端采用什么技術(shù)方案,應(yīng)該如何實(shí)現(xiàn)。(1) 空間數(shù)據(jù)庫(kù)的建立空間數(shù)據(jù)庫(kù)的建立,和數(shù)據(jù)的來源緊密相關(guān),

12、其實(shí)質(zhì)就是將用戶的各種數(shù)據(jù)導(dǎo)入空間數(shù)據(jù)庫(kù),使其空間化(Spatialize),為后續(xù)系統(tǒng)開發(fā)提供數(shù)據(jù)基礎(chǔ)。在這個(gè)過程中,首先用戶要建立自己的數(shù)據(jù)庫(kù),然后將數(shù)據(jù)庫(kù)空間化,即執(zhí)行存儲(chǔ)過程sp_spatialize_db,該存儲(chǔ)過程使數(shù)據(jù)庫(kù)空間化,并自動(dòng)生成元數(shù)據(jù)表MAPINFO_MAPCATLOG。然后,在空間化過的數(shù)據(jù)庫(kù)中,創(chuàng)建空間表并將其中的地理數(shù)據(jù)列空間化.舉例如下:create database test_spatialwareexec sp_spatialize_dbcreate table testcon ( sw_member integer not null unique,sw_g

13、eometry st_spatial )建立空間數(shù)據(jù)表后,可以向該表中插入數(shù)據(jù)。最后,對(duì)該表建立空間索引(R樹索引),就可以在客戶端執(zhí)行各種空間操作了。(2) 客戶端應(yīng)用的設(shè)計(jì)客戶端是和用戶交互的接口,在MapInfo的整體解決方案中,可以采用MapBasic作為客戶端進(jìn)行開發(fā),也可以采用MapX作為客戶端進(jìn)行開發(fā),兩者各有優(yōu)劣。采用MapX作為客戶端,可以完全脫離MapInfo Professional環(huán)境,非常便于和管理信息系統(tǒng)(MIS)的集成.MapX和Saptialware的集成開發(fā),實(shí)質(zhì)上是MapX將空間數(shù)據(jù)庫(kù)中的數(shù)據(jù)加載到它的Layers和Datasets中,進(jìn)行各種地圖操作、專題

14、制圖、空間分析等。將空間數(shù)據(jù)加載到MapX圖層中,是通過LayerInfo對(duì)象實(shí)現(xiàn)的,下面給出了加載地圖圖層,并實(shí)現(xiàn)地圖自動(dòng)標(biāo)注的代碼:Sub LoadMapData()Dim LayerInfo As New MapXLib.LayerInfo LayerInfo.Type = miLayerInfoTypeServerLayerInfo.AddParameter "Name", "zz_admin"LayerInfo.AddParameter "ConnectString", DSN=zz_lyxt;UID=sa;river=SQ

15、L Server"LayerInfo.AddParameter "query", "Select * from zz_admin"LayerInfo.AddParameter "cache", "on"LayerInfo.AddParameter "MBRSearch", "on"LayerInfo.AddParameter "toolkit", "ODBC"LayerInfo.AddParameter "AutoC

16、reateDataset", 1LayerInfo.AddParameter "datasetname", "zz_admin"MapMain.Layers.Add LayerInfo, 1Set ds = MapMain.Datasets("zz_admin")Set MapMain.Layers("zz_admin").LabelProperties.Dataset = dsSet MapMain.Layers("zz_admin").LabelProperties.DataField=”名稱”MapMain.Layers("zz_admin").AutoLabel = TrueMapMain.Layers("zz_admin").Selectable = TrueMapMain.Layers("zz_admin ").RefreshMapMain.A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論