論文基于空間數(shù)據(jù)引擎構建GIS應用_第1頁
論文基于空間數(shù)據(jù)引擎構建GIS應用_第2頁
論文基于空間數(shù)據(jù)引擎構建GIS應用_第3頁
論文基于空間數(shù)據(jù)引擎構建GIS應用_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.基于空間數(shù)據(jù)引擎構建GIS應用劉宏建 牛德力解放軍信息工程大學測繪學院 河南鄭州 450052摘要:本文以利用空間數(shù)據(jù)引擎構建GIS應用為主要研究內容,從體系結構、核心技術、工作流程等方面對該技術做了詳細介紹,又以MapInfo Spatialware為例,給出了基于MapInfo Spatialware構建GIS應用的解決方案。關鍵字:空間數(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. 引言近年來,隨著關系數(shù)據(jù)庫技術的進一步發(fā)展與成熟,采用關系數(shù)據(jù)庫來對空間數(shù)據(jù)和屬性數(shù)據(jù)進行一體化存儲和管理,已經(jīng)成為商用GIS平臺發(fā)展的一個趨勢。全關系型的GIS軟件,利

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

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

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

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

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

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

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

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

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

12、其實質就是將用戶的各種數(shù)據(jù)導入空間數(shù)據(jù)庫,使其空間化(Spatialize),為后續(xù)系統(tǒng)開發(fā)提供數(shù)據(jù)基礎。在這個過程中,首先用戶要建立自己的數(shù)據(jù)庫,然后將數(shù)據(jù)庫空間化,即執(zhí)行存儲過程sp_spatialize_db,該存儲過程使數(shù)據(jù)庫空間化,并自動生成元數(shù)據(jù)表MAPINFO_MAPCATLOG。然后,在空間化過的數(shù)據(jù)庫中,創(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ù)。最后,對該表建立空間索引(R樹索引),就可以在客戶端執(zhí)行各種空間操作了。(2) 客戶端應用的設計客戶端是和用戶交互的接口,在MapInfo的整體解決方案中,可以采用MapBasic作為客戶端進行開發(fā),也可以采用MapX作為客戶端進行開發(fā),兩者各有優(yōu)劣。采用MapX作為客戶端,可以完全脫離MapInfo Professional環(huán)境,非常便于和管理信息系統(tǒng)(MIS)的集成.MapX和Saptialware的集成開發(fā),實質上是MapX將空間數(shù)據(jù)庫中的數(shù)據(jù)加載到它的Layers和Datasets中,進行各種地圖操作、專題

14、制圖、空間分析等。將空間數(shù)據(jù)加載到MapX圖層中,是通過LayerInfo對象實現(xiàn)的,下面給出了加載地圖圖層,并實現(xiàn)地圖自動標注的代碼: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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論