【摘 要】介紹ArcGIS的Geo database數(shù)據(jù)模型,并在Geo database的基礎(chǔ)上構(gòu)建城市市政GIS數(shù)據(jù)模型,并利用ESRI公司的空間數(shù)據(jù)庫(kù)引擎(Spatial Database Engine),分析模型數(shù)據(jù)的存儲(chǔ)模式,最后基于Arc Objects組件對(duì)象實(shí)現(xiàn)模型數(shù)據(jù)的入庫(kù)。
【關(guān)鍵詞】Geo database;GIS;ArcGIS
1.市政GIS數(shù)據(jù)模型
1.1 Geo database數(shù)據(jù)模型概述
Geo database數(shù)據(jù)模型是在汲取以往數(shù)據(jù)模型工作成果的基礎(chǔ)上,采用面向?qū)ο蟮乃枷胩岢龅囊环N適用于關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的空間數(shù)據(jù)模型。該數(shù)據(jù)模型包括對(duì)象類、要素類、要素?cái)?shù)據(jù)集、關(guān)系類、幾何網(wǎng)絡(luò)、域、規(guī)則、柵格數(shù)據(jù)集等。Geo database數(shù)據(jù)模型在邏輯上統(tǒng)一了以往空間數(shù)據(jù)模型,為上層應(yīng)用提供了統(tǒng)一的數(shù)據(jù)接口。在基于Geo database模型的應(yīng)用中,面向用戶的不再是抽象的點(diǎn)、線、面,而是面向具體應(yīng)用的一些實(shí)體。將行為、關(guān)系、規(guī)則引入地理要素,不僅可以充分表達(dá)空間數(shù)據(jù)之間的關(guān)系,同時(shí)也使應(yīng)用中的空間數(shù)據(jù)的錄入和編輯更加準(zhǔn)確。Geo database模型的幾何網(wǎng)絡(luò)中引入了復(fù)雜型交點(diǎn)、復(fù)雜型邊線的概念。
1.2 Geo database數(shù)據(jù)模型的優(yōu)點(diǎn)
(1)Geo database的空間對(duì)象集不僅可以表達(dá)關(guān)系型數(shù)據(jù)庫(kù)的地理數(shù)據(jù),同時(shí)也可以表達(dá)Coverage和Shape file格式的空間數(shù)據(jù)。
(2)Geo database數(shù)據(jù)模型不僅接近于人類對(duì)現(xiàn)實(shí)事物對(duì)象的認(rèn)識(shí)和表述方式,而且還具有較好的客戶化能力和可擴(kuò)展能力。
(3)將行為、關(guān)系、規(guī)則引入地理要素,不僅可以充分表達(dá)空間數(shù)據(jù)之間的關(guān)系,同時(shí)也使應(yīng)用中的空間數(shù)據(jù)的錄入和編輯更加準(zhǔn)確。
(4)Geo database可將空間數(shù)據(jù)和屬性數(shù)據(jù)集成在同一關(guān)系型數(shù)據(jù)庫(kù)中,改變了傳統(tǒng)模型中兩者僅通過(guò)ID聯(lián)系的狀態(tài),實(shí)現(xiàn)了嚴(yán)格意義上的地理空間數(shù)據(jù)庫(kù);同時(shí),它也可以充分利用關(guān)系型數(shù)據(jù)庫(kù)高效的數(shù)據(jù)管理能力。
(5)Geo database對(duì)網(wǎng)絡(luò)拓?fù)涞拿枋龇浅XS富(如:市政設(shè)施網(wǎng)絡(luò)和街道網(wǎng)絡(luò)),而且隨著各種編輯操作的產(chǎn)生,Geo database會(huì)主動(dòng)維護(hù)現(xiàn)行網(wǎng)絡(luò)拓?fù)潢P(guān)系,從而避免了拓?fù)渲亟ㄟ@樣一個(gè)重復(fù)、冗長(zhǎng)的操作。
(6)Geo database模型的幾何網(wǎng)絡(luò)中引入了復(fù)雜型交點(diǎn)Complex Junction Feature、復(fù)雜型邊線(Complex Edge Feature)的概念。一般復(fù)雜型的交點(diǎn)或邊線在幾何網(wǎng)絡(luò)中是由許多復(fù)雜的圖素組成,但是在創(chuàng)建幾何拓?fù)鋾r(shí),其邏輯網(wǎng)絡(luò)不會(huì)關(guān)心其復(fù)雜的組織結(jié)構(gòu),而是將其整體作為簡(jiǎn)單的節(jié)點(diǎn)或邊線看待。
1.3 基于Geo database的市政數(shù)據(jù)模型的構(gòu)建
由于Geo database數(shù)據(jù)模型讓用戶更容易、更自然地表示GIS數(shù)據(jù)要素,更容易地建立要素之間的各種關(guān)系,因而在城市人防系統(tǒng)的設(shè)計(jì)中采用Geo database數(shù)據(jù)模型來(lái)設(shè)計(jì)各種實(shí)體以及它們的關(guān)系。所用到的城市市政數(shù)據(jù)主要是由城市基礎(chǔ)地理信息,城市交通專題信息和城市建筑專題信息3個(gè)數(shù)據(jù)集組成的。每個(gè)城市市政數(shù)據(jù)集是由按照地理要素的特征進(jìn)行分類的要素類構(gòu)成的。
2.數(shù)據(jù)的存儲(chǔ)模式
本系統(tǒng)采用ArcSDE(空間數(shù)據(jù)庫(kù)引擎)存儲(chǔ)模式來(lái)對(duì)市政數(shù)據(jù)進(jìn)行存儲(chǔ)。ArcSDE使用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)管理空間數(shù)據(jù),解決存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的空間數(shù)據(jù)與應(yīng)用程序之間的數(shù)據(jù)接口問(wèn)題,是空間數(shù)據(jù)進(jìn)出關(guān)系數(shù)據(jù)庫(kù)的通道。
ArcSDE是ESRI公司推出的一套空間數(shù)據(jù)庫(kù)管理軟件,同多ArcSDE,用戶可以將多種數(shù)據(jù)產(chǎn)品按照Geo database模型存儲(chǔ)于數(shù)據(jù)庫(kù)系統(tǒng)中,并獲得高效的管理和檢索對(duì)象。
本系統(tǒng)采用C/S與B/S并存的結(jié)構(gòu)體系,在分布式的網(wǎng)絡(luò)環(huán)境下,由ArcSDE負(fù)責(zé)完成網(wǎng)絡(luò)中數(shù)據(jù)或服務(wù)的查找,然后將查找的信息返回給客戶端。
3.市政數(shù)據(jù)的入庫(kù)
市政數(shù)據(jù)的入庫(kù)是建立城市市政數(shù)據(jù)庫(kù)的一項(xiàng)重要工作,而矢量數(shù)據(jù)又是最核心的部分。所以,本文主要討論了矢量數(shù)據(jù)的入庫(kù),主要通過(guò)ArcObjects編程技術(shù)來(lái)實(shí)現(xiàn)市政數(shù)據(jù)的入庫(kù),整個(gè)實(shí)現(xiàn)過(guò)程主要分為以下5個(gè)步驟:
(1)定義連接數(shù)據(jù)庫(kù)的屬性。
主要源代碼如下:
//
//連接數(shù)據(jù)庫(kù)
//
Public void ConnectSQLServer(string server,string instance,string user,string password,string data-base,string version,AxMapControl axMap)
{
//設(shè)置連接屬性
IPropertySet m_Property=new PropertySetClass();
m_Property1SetProperty″SERVER″,server( );
m_Property1SetProperty″INSTANCE″,instance( );
m_Property1SetProperty(″DATABASE″,database);
m_Property1SetProperty(″USER″,user);
m_Property1SetProperty(″PASSWORD″,password);
m_Property1SetProperty(″VERSION″,version);
//打開(kāi)工作區(qū)
IWorkspaceFactory m_WorkspaceFactory;
m_WorkspaceFactory=new SdeWorkspaceFactoryClass();
m_Workspace=m_WorkspaceFactory.Open(m_Property,axMapControl1.hWnd);
//向工作區(qū)加載數(shù)據(jù)
IFeatureWorkspace m_FeatureWorkspace;
m_FeatureWorkspace=m_Workspace as IFeatureWorkspace;
IFeatureClass m_FeatureClass;
m_FeatureClass=m_FeatureWorkspace.OpenFeatureClass(″PARKS″);
//在地圖上顯示加載的圖層
IFeatureLayer m_FeatureLayer=new FeatureLayerClass();
m_FeatureLayer.FeatureClass=m_FeatureClass;
axMap.ActiveView.FocusMap.AddLayer(m_FeatureLayer as ILayer);
axMap.ActiveView.Refresh();
}
(2)定義要入庫(kù)的數(shù)據(jù)源所對(duì)應(yīng)的要素類名稱。
(3)定義庫(kù)中的要素集和要素類名稱。
(4)得到原數(shù)據(jù)的所有字段并檢查其合法性。
由于市政工作涉及面廣、領(lǐng)域多,因而市政數(shù)據(jù)的建立及數(shù)據(jù)入庫(kù)時(shí)最終建立市政GIS系統(tǒng)的一個(gè)關(guān)鍵環(huán)節(jié)。本文在Geo database的基礎(chǔ)上構(gòu)建城市市政GIS數(shù)據(jù)模型,并利用ESRI公司的空間數(shù)據(jù)庫(kù)引擎(Spatial Database Engine),分析模型數(shù)據(jù)的存儲(chǔ)模式,最后基于Arc Objects組件對(duì)象實(shí)現(xiàn)模型數(shù)據(jù)的入庫(kù)。
【參考文獻(xiàn)】
[1]李清泉,李德仁.三維空間數(shù)據(jù)模型集成的概念框架研究[J].測(cè)繪學(xué)報(bào),1998,27(4):325-330.
[2]張耀東基于GIS的高速公路建設(shè)管理信息系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[J].中南公路工程,2004,(1).