岳傳明 劉 凱 周卓月
(1.利津縣國土資源局,山東 利津 257400;2.山東農業大學 資源與環境學院,山東 泰安 271018)
隨著網絡技術的發展和行業應用需求的增加,webGIS的開發應用成為GIS發展的新熱點,并正在深入到各行各業。webGIS開發離不開數據,ArcGIS軟件自身提供了兩種數據庫——文件地理數據庫和個人地理數據庫來存儲幾何數據和關系數據,但這兩種數據庫只能通過ArcGIS軟件訪問,是ArcGIS專有的,這就會使ArcGIS在行業應用中受到很大限制。因為對于一個完整的web應用,webGIS應用往往只是作為其中的一個模塊存在的。如此一來,GIS模塊與web應用的其他模塊各用一套數據庫,二者沒有溝通,不能同步,便稱不上是一個完整的web應用。針對這個問題,Esri公司在推出ArcGIS Server產品的同時提供了ArcSDE解決方案,它允許用戶在Oracle,Microsoft SQL Server,IBM DB2和Informix等多種數據庫平臺上管理地理數據,并使所有的ArcGIS應用程序都能夠使用這些數據。文章以某高校地產管理系統為例,研究了GIS系統與一般web應用共同管理和使用同一關系型數據庫中數據的實現方法,提出了一個通用的基于數據庫技術的webGIS開發模型。
高校地產管理系統是一個傳統數據管理系統,主要功能是對高校地產信息的管理。地產信息具有很強的地理相關性,枯燥的簡單數據操作已不能滿足用戶的需求,對于地產信息,用戶希望能夠通過“所見即所得”的可視化操作來更有效率的完成地產信息的采集與管理,用戶的這種現實需要要求GIS應用與傳統web應用結合起來,聯合管理數據。GIS系統與傳統數據管理系統各司其職,可以分別獨立開發,二者唯一需要統一的就是數據庫設計,或者在一方系統已開發完成的情況下,另一方系統只需遵守已有的數據庫使用規則進行開發即可。這樣一來,開發完成的系統看似是兩個獨立系統的拼湊,實則二者通過數據庫有機的結合起來,用戶無論通過哪方系統對地產信息進行操作,另一方系統也會實時聯動更新,在使用中二者又可各取其長,展現了GIS系統與傳統數據管理系統聯合管理數據的強大功能。
高校地產管理系統的GIS部分主要是輔助主系統在地圖上直觀的展示與管理數據,要求能對地圖進行縮放、鷹眼等基本操作,點擊圖上地產能夠查看其屬性信息并能夠修改與更新,還要求能夠展示和修改更新每處地產各樓層、各房間的屬性信息,能夠通過搜索功能查找地產,能夠編輯地產地圖添加新地產及刪除地產等。
高校地產管理系統整體按用戶權限分為公共客戶端與后臺管理端兩部分,普通用戶只能通過公共客戶端進行瀏覽地產信息等基本操作,管理員可使用后臺管理系統管理和更新地產信息。
公共客戶端主要功能模塊有縮放模塊、鷹眼、書簽、屬性查詢模塊、繪圖預測量模塊、地產搜索模塊、打印與截圖等。后臺管理系統在公共客戶端基礎上開放地產信息修改權限,將屬性查詢模塊更改為屬性編輯模塊,在屬性查詢基礎上還可對地產屬性進行修改更新;另增加地圖編輯模塊,可修改地圖,添加和刪除地產等。其中,縮放模塊、鷹眼、書簽、繪圖與測量、打印與截圖五個模塊為通用模塊,僅承擔對地圖的基本操作任務。為地產管理系統的業務邏輯專門服務的模塊有屬性查詢模塊、地產搜索模塊、屬性編輯模塊和地圖編輯模塊,系統結構如圖1所示。

圖1 高校地產系統結構圖
1)屬性查詢模塊主要是對地產屬性的顯示,又分兩個子模塊——地產信息查詢模塊與樓層信息查詢模塊。房產信息查詢支持在主地圖上單擊房產查看相應房產信息,樓層信息查詢則可以查看選定地產的各樓層詳細地圖,在樓層地圖上單擊房間可以查看對應房間的使用情況。整個模塊主要涉及對QueryTask和AttributeInspector的應用。
2)地產搜索模塊主要是利用關鍵字搜索相應地產在地圖上的位置,快速定位目標,并顯示地產信息,又分兩個子模塊——按類別搜索與關鍵字搜索。按類別搜索,在開發初期數據準備過程中事先為地產添加利用類別字段,將全部地產分為職能部門、生活設施、公共服務、教學設施和學院五個利用類別,用戶點擊相應類別按鈕得到屬于該類別的所有地產列表,點擊列表中相應地產,地圖自動縮放到該地產范圍并高亮顯示,同時顯示地產屬性信息。按關鍵字搜索是由用戶輸入關鍵字,系統按關鍵字搜索出符合條件的所有地產,點擊相應地產實現縮放、高亮和顯示屬性信息,支持模糊查詢。該模塊涉及的主要技術也是對QueryTask和AttributeInspector的組合應用。
3)屬性編輯模塊主要是在屬性查詢基礎上開放了對屬性信息的編輯權限,管理員可以通過此模塊實時更新地產信息。
4)地圖編輯模塊可以添加新地產,修改已有地產的圖形,也可以刪除已有地產,是管理員用來管理地產數據的一個主要模塊。主要是對Editor工具的使用。
要實現地產信息的實時更新要求系統操作的所有數據必須來自同一個數據庫;ArcGIS軟件自身的地理數據庫不支持web端數據修改,不能滿足地產管理系統的業務需要,因此必須使用一個更加強大的外部數據庫來管理地產數據。ArcGIS軟件現已支持在Oracle、Microsoft SQL Server、IBM DB2和Informix等多種數據庫平臺上管理數據,這些數據庫管理平臺都屬于關系數據庫管理系統(RDBMS),無法直接管理空間數據,必須經過ArcGIS軟件的連接配置。
對于ArcGIS連接RDBMS來說,又有兩種連接方式——直接連接方式和ArcSDE連接方式。采用直接連接方式不需要管理ArcSDE服務,不需要安裝、配置和啟動中間進程giomgr.exe,數據讀寫速度快,但在其中管理的數據默認情況下是只讀的,使用這種連接方式只能在RDBMS中編輯數據,雖然在webGIS端的數據也可得到實時更新,但這仍不能滿足最初系統設計的需要。要使用RDBMS存儲和管理能滿足webGIS開發需要的空間數據必須使用ArcSDE連接方式。
ArcSDE是ArcGIS的空間數據引擎,它是在RDBMS中存儲和管理多用戶空間數據的通路。從空間數據管理的角度看,ArcSDE是一個連續的空間數據模型,借助這一空間數據模型,可以實現用RDBMS管理空間數據庫。ArcSDE采用的是客戶端/服務器體系結構,眾多用戶可以同時并發訪問和操作同一數據。
可編輯的空間數據必須來自ArcSDE,ArcSDE針對不同的RDBMS提供了相應的軟件版本,使用前需安裝正確的ArcSDE版本。軟件安裝過程中需要進行一系列配置,包括待連接的數據庫實例名稱、數據庫身份驗證、SDE數據庫命名等,配置完成后方可使用ArcCatalog軟件管理RDBMS中SDE數據庫的數據。在RDBMS中打開SDE數據庫查看,可以發現系統在建立SDE數據庫之后自動創建了一系列關系表,用戶無需關注這些復雜的關系表,只需熟悉如何在ArcCatalog中管理ArcGIS常用數據即可。在ArcCatalog中添加空間數據庫連接,進行連接屬性配置,成功連接到ArcSDE后在ArcCatalog中會生成一個新類型的數據庫——ArcSDE地理數據庫,這個地理數據庫支持ArcGIS一切常用數據的管理,在接下來的開發中,只需將系統需要的點、線、面等要素導入或建立在這個ArcSDE地理數據庫中即可。
在ArcSDE地理數據庫中,屬性數據是依附于幾何數據存儲的,在ArcCatalog中可見的只有點、線、面等幾何要素,屬性數據存儲于幾何要素的屬性表中;而在RDBMS中可見的只有屬性數據,幾何數據是由屬性數據表和復雜的關系表連接共同體現的。實際開發中,應是在ArcSDE地理數據庫中導入已有要素或者建立新要素,并按需要建立相應屬性字段,在RDBMS端的SDE數據庫中便會生成一張與要素同名的數據表和若干關系表連接,這個數據表中管理的是要素的屬性數據,通過系統定制字段“OBJECTID”與要素屬性表連接,實現數據同步。值得注意的是,要想實現多個用戶能夠同時編輯同一個ArcSDE地理數據庫中的數據,導入ArcSDE地理數據庫的要素必須首先注冊版本。至此,環境搭建與數據準備工作完成。
接下來只需將ArcSDE中的要素添加進相應ArcMap工程,并保存為以.mxd為后綴的工程文件,然后使用ArcGIS Server發布為要素服務,用于webGIS應用開發的支持多用戶同時在線編輯的地理數據就準備完成了,最后,根據需要使用ArcGIS提供的相應API操作數據即可。對整個開發過程進行總結,可以抽取出一個通用的開發模型,如圖2所示。

圖2 基于數據庫技術的webGIS開發模型
文章提供的數據庫實現方案基本滿足了高校地產系統對空間數據在線編輯的需要,使用戶能夠在web端可視化的編輯和管理地產信息。在實際應用中,凡是涉及對空間數據在線編輯需要的GIS應用系統,都可采用文章提供的數據庫解決方案。
[1]宋關福,鐘耳順,王爾琪.WebGIS:基于 Internet的地理信息系統[J].中國圖像圖形學報,1998(3).
[2]郭杰華,鮑遠律,胡玉鎖,等.基于Internet的地理信息系統的研究和開發[J].圖形圖像學報,1999(1).
[3]薛小峰,旺曉程.WebGIS 處理模型系統[J].微型電腦應用,2000.
[4]王行風,徐壽成.XML 與 WebGIS 的空間數據管理技術[J].計算機應用研究,2001.