999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ArcSDE的哈爾濱市GIS空間數(shù)據(jù)管理系統(tǒng)

2016-12-28 06:13:08
地理空間信息 2016年10期
關(guān)鍵詞:功能模塊數(shù)據(jù)庫功能

孟 露

(1.東北林業(yè)大學,黑龍江 哈爾濱 150040)

基于ArcSDE的哈爾濱市GIS空間數(shù)據(jù)管理系統(tǒng)

孟 露1

(1.東北林業(yè)大學,黑龍江 哈爾濱 150040)

介紹了基于ArcSDE的哈爾濱市GIS空間數(shù)據(jù)管理系統(tǒng)的總體結(jié)構(gòu)、功能設(shè)計、功能模塊流程、功能的實現(xiàn)以及運行情況,為GIS空間數(shù)據(jù)管理系統(tǒng)的開發(fā)提供一個應用實例。

ArcSDE;GIS空間數(shù)據(jù);功能設(shè)計;程序流程;總體結(jié)構(gòu)

1 系統(tǒng)結(jié)構(gòu)設(shè)計

系統(tǒng)結(jié)構(gòu)總體上是以客戶端/服務(wù)器體系架構(gòu)為基礎(chǔ),在邏輯上分為3層,分別為界面層、基礎(chǔ)功能層和數(shù)據(jù)引擎層。3層之間的功能相對獨立,系統(tǒng)可以方便地進行擴展。

基礎(chǔ)功能層主要由數(shù)據(jù)查詢、屬性編輯、圖形編輯、專題地圖制作等組件構(gòu)成。對這些組件進行封裝,然后通過定義接口或消息驅(qū)動等方式供用戶使用。

界面層主要由界面控制、地圖顯示和柵格顯示等構(gòu)成[1]。界面層根據(jù)系統(tǒng)要求,按照技術(shù)設(shè)計封裝系統(tǒng)的各項功能,使系統(tǒng)基礎(chǔ)功能層與界面層相互分離,這樣在系統(tǒng)界面發(fā)生改變和調(diào)整時,系統(tǒng)的各項功能保持不變。

數(shù)據(jù)引擎層是為前臺應用程序與后臺數(shù)據(jù)庫進行交互而設(shè)計,包括與數(shù)據(jù)庫進行連接,對數(shù)據(jù)庫進行查詢、檢索、更新、添加、存儲、空間分析等操作。數(shù)據(jù)庫通過數(shù)據(jù)引擎層接受來自前臺應用程序的請求,經(jīng)過后臺數(shù)據(jù)庫的處理,將處理結(jié)果發(fā)送給前臺應用程序。

系統(tǒng)采用基于COM/DCOM組件的GIS開發(fā)模式,利用ArcEngine 9.2進行開發(fā),以ArcSDE API為空間數(shù)據(jù)庫引擎與后臺Oracle數(shù)據(jù)庫的Geodatabase空間數(shù)據(jù)進行交互,采用C#高級開發(fā)語言,開發(fā)環(huán)境為Visual Studio 2005。系統(tǒng)界面如圖1所示。

2 系統(tǒng)功能設(shè)計

基于ArcSDE的哈爾濱市GIS空間數(shù)據(jù)管理系統(tǒng)的整體功能結(jié)構(gòu)如圖2所示。

圖1 系統(tǒng)界面

圖2 系統(tǒng)功能結(jié)構(gòu)圖

3 功能模塊設(shè)計

按照3層系統(tǒng)結(jié)構(gòu)的總體設(shè)計要求,功能模塊設(shè)計也分為3層,分別為基礎(chǔ)功能模塊、空間數(shù)據(jù)入庫模塊和控件功能模塊。基礎(chǔ)功能模塊包括空間數(shù)據(jù)編輯子模塊、空間數(shù)據(jù)查詢與分析子模塊,該模塊主要完成空間數(shù)據(jù)編輯、查詢與分析等GIS基礎(chǔ)功能,空間數(shù)據(jù)入庫模塊主要完成空間數(shù)據(jù)引擎的功能,控件功能模塊作為界面層主要完成界面層的功能。

3.1 基礎(chǔ)功能模塊

3.1.1 空間數(shù)據(jù)編輯子模塊

對空間數(shù)據(jù)的編輯流程如圖3所示。在空間數(shù)據(jù)編輯模塊中,編輯的主要對象是圖形數(shù)據(jù)和屬性數(shù)據(jù),圖形數(shù)據(jù)可分為地名、鐵路、街道、房屋等圖層,分別存儲在不同的工作空間中,屬性數(shù)據(jù)以二維表的形式存儲。要獲得這些圖形數(shù)據(jù),必須先獲取這些圖形數(shù)據(jù)所在的工作區(qū)間,因此,該模塊設(shè)計了打開、連接和設(shè)置工作空間的功能,完成工作空間設(shè)置后,就可以激活空間數(shù)據(jù)編輯功能,使用編輯工具對圖形數(shù)據(jù)進行添加、編輯和刪除等操作。其主要的編輯操作包括添加和刪除圖形要素、編輯圖形和其相應的屬性數(shù)據(jù)以及編輯要素類型等,最后將編輯完成的空間數(shù)據(jù)存儲到空間數(shù)據(jù)庫中。

圖3 空間數(shù)據(jù)編輯子模塊流程圖

3.1.2 空間數(shù)據(jù)查詢與分析子模塊

空間數(shù)據(jù)查詢與分析功能的程序流程如圖4所示。空間數(shù)據(jù)查詢與分析是系統(tǒng)的重要功能,包括查詢分析、疊加分析、緩沖區(qū)分析、鄰域分析等[3]。空間數(shù)據(jù)分為矢量數(shù)據(jù)和柵格數(shù)據(jù)兩類,都是以分層結(jié)構(gòu)組織。該模塊設(shè)計了圖層選擇功能,可通過該功能選擇要查詢與分析的數(shù)據(jù)圖層。該模塊還設(shè)計與開發(fā)了幾何圖形工具集,利用這些工具選擇要查詢與分析的空間范圍后,就可以對這個空間范圍內(nèi)的空間對象進行包含查詢、交叉查詢、鄰接查詢等操作。還設(shè)計了緩沖區(qū)功能,可對矢量數(shù)據(jù)與柵格數(shù)據(jù)的點、線、面建立緩沖區(qū)。

3.2 空間數(shù)據(jù)入庫模塊

空間數(shù)據(jù)入庫功能的程序流程如圖5所示。系統(tǒng)使用ArcSDE作為空間數(shù)據(jù)庫引擎, Oracle10g作為后臺數(shù)據(jù)庫。首先通過設(shè)置ArcSDE的配置參數(shù)連接前臺應用程序與后臺數(shù)據(jù)庫,參數(shù)配置過程可以反復進行直至連接成功[2]。

圖4 空間數(shù)據(jù)查詢與分析流程圖

圖5 空間數(shù)據(jù)入庫流程圖

需要存儲到Oracle數(shù)據(jù)庫的空間數(shù)據(jù)包括矢量數(shù)據(jù)和柵格數(shù)據(jù)(影像)。該模塊可選擇不同類型的空間數(shù)據(jù)并對這些空間數(shù)據(jù)進行檢查與修復。如果要入庫的空間數(shù)據(jù)為矢量數(shù)據(jù),該模塊需檢查該數(shù)據(jù)的完整性、拓撲關(guān)系正確性等;如果要入庫的空間數(shù)據(jù)為柵格文件,該模塊也能檢查該數(shù)據(jù)的完整性。檢查后,如果數(shù)據(jù)符合入庫的要求,就會把這些數(shù)據(jù)存儲到Oracle數(shù)據(jù)庫中,并提示用戶為數(shù)據(jù)文件重新命名,如果不符合,則重新選擇空間數(shù)據(jù)。

3.3 控件功能模塊

系統(tǒng)中各控件的運行流程如圖6所示。GIS空間數(shù)據(jù)管理系統(tǒng)中會有很多不同功能的控件來構(gòu)成整個系統(tǒng)的控件集合,各控件之間按照應用需求有不同的邏輯聯(lián)系[4]。該模塊根據(jù)這種邏輯聯(lián)系,設(shè)計與建立了不同功能的控件聯(lián)系。設(shè)計中采用了對象池的概念,先在對象池中查找要執(zhí)行的控件對象,并對當前要執(zhí)行的控件對象是否是該控件對象的接口作出判斷,若當前控件對象不存在或者當前控件對象不是該控件對象的接口,系統(tǒng)就不執(zhí)行當前控件對象的接口,否則就會對保留前一個控件對象的必要性作出判斷,如果保留前一個控件對象是沒有必要的,系統(tǒng)就會將當前要執(zhí)行控件對象的信息窗口彈出來,如果必須保留前一個控件對象,系統(tǒng)會恢復前一個控件對象的操作結(jié)果;無論是否恢復對前一個控件對象的操作結(jié)果,系統(tǒng)都會判斷當前控件對象是否為ITool控件對象的接口,假如當前控件對象不是ITool控件對象,系統(tǒng)就執(zhí)行Onclick操作,假如當前控件對象是ITool控件對象,系統(tǒng)會調(diào)用當前要執(zhí)行的控件對象工具,并將當前控件對象工具綁定到控件上[5],同時清除前一個控件對象,并更新系統(tǒng)工具按鈕和菜單狀態(tài)。

圖6 系統(tǒng)控件流程圖

4 系統(tǒng)主要功能的實現(xiàn)

4.1 Shape圖層的創(chuàng)建

首先要在工作空間中創(chuàng)建一個數(shù)據(jù)集,這個數(shù)據(jù)集包含table、feature、rasterdataset對象。數(shù)據(jù)集對象分為兩類,一類是table二維表,另一類是geodataset地理數(shù)據(jù)集。地理數(shù)據(jù)集geodataset是由要素數(shù)據(jù)集featuredataset、要素類featureclass、柵格數(shù)據(jù)集rasterdataset和TIN組成[6]。這里要創(chuàng)建的Shape圖層主要就是要素類,程序中給出了點、線、面要素圖層的建立過程,其運行結(jié)果如圖7所示。

圖7 創(chuàng)建Shape數(shù)據(jù)

在下列程序中先選擇要素類型即點、線、面,然后利用FieldItem對象創(chuàng)建多個字段,最后利用CreateFeatureClass對象創(chuàng)建要素類FeatureClass。程序結(jié)束后,在指定的文件夾中就會生成三個文件,分別是*. dbf 、*.shp、和*. shx文件。

switch(this.cmbType.SelectedItem.ToString())

{

case "點圖層":

pGeometryType=esriGeometryType.esriGeometryPoint;

break;

case "線圖層":

pGeometryType=esriGeometryType.esriGeometryPolyline;

break;

case "圖層面":

pGeometryType=esriGeometryType.esriGeometryPolygon;

break;

}

ArrayList ArrayFieldInfo=new ArrayList();

for(int i=0;i<this.lstFieldsView.Items.Count;i++)

{

ListViewItem pListViewItem=new ListViewItem();

pListViewItem=lstFieldsView.Items[i];

FieldItem pFieldItem=new FieldItem();

pFieldItem=pListViewItem.Tag as FieldItem;

ArrayFieldInfo.Add(pFieldItem);

}

public static void CreateShapeFile(ArrayList pArrayList, string strGeoFieldName,string strFilePathName,stringstrFileName,esriGeometryType pGeometryType)

4.2 空間數(shù)據(jù)查詢

空間數(shù)據(jù)查詢有空間查詢和屬性查詢兩種,空間查詢是在地圖上查詢一定空間范圍的地理要素,屬性查詢是通過設(shè)定一定的查詢條件,查找滿足條件的地理要素。空間數(shù)據(jù)查詢的實現(xiàn)方法是在程序中通過IFeatureSelection對象的SelectionSet屬性獲取選擇集,利用IFeatureSelection對象的SelectFeatures方法,使用IQueryFilter過濾器將符合條件的地理要素放入圖層的選擇集中[7]。在圖8中通過選擇點、線、面圖層,設(shè)置字段和字段的唯一值,并通過SQL運算符來構(gòu)造SQL查詢語句進行空間查詢和屬性查詢。

圖8 空間查詢和屬性查詢

4.3 加載SDE數(shù)據(jù)

加載SDE數(shù)據(jù)主要是使用IWorkspace對象提供的數(shù)據(jù)庫訪問接口,通過設(shè)置數(shù)據(jù)庫連接參數(shù),如數(shù)據(jù)庫名稱、實例名、用戶名、密碼等來實現(xiàn)。程序運行結(jié)果如圖9所示。

圖9 SDE數(shù)據(jù)加載

public IWorkspace openSDEWorkspace(string S, string I, string U,

string P, string D, string V)

{

try

{

IWorkspace gk = null;

IPropertySet PPS = new PropertySetClass();

IWorkspaceFactory PSF = new SdeWorkspaceFactoryClass();

PPS.SetProperty("server", S);

PPS.SetProperty("instance", I);

PPS.SetProperty("database", D);

PPS.SetProperty("user", U);

10.3969/j.issn.1672-4623.2016.10.018

P208

B

1672-4623(2016)10-0063-04

2016-06-12。

項目來源:黑龍省普通高校重點實驗室項目精化局部似大地水準面方法研究資助項目(KJKF-14-08)。

猜你喜歡
功能模塊數(shù)據(jù)庫功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關(guān)于非首都功能疏解的幾點思考
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
基于ASP.NET標準的采購管理系統(tǒng)研究
軟件導刊(2016年9期)2016-11-07 21:35:42
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
輸電線路附著物測算系統(tǒng)測算功能模塊的研究
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
M市石油裝備公服平臺網(wǎng)站主要功能模塊設(shè)計與實現(xiàn)
石油知識(2016年2期)2016-02-28 16:20:16
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
功能模塊的設(shè)計與應用研究
主站蜘蛛池模板: 国产91成人| 国产婬乱a一级毛片多女| 国产呦精品一区二区三区网站| 免费毛片a| 深夜福利视频一区二区| 国产成人久久综合777777麻豆 | 久久青草免费91线频观看不卡| 亚洲日韩精品伊甸| 99热这里只有精品2| 热久久综合这里只有精品电影| 欧美色亚洲| 97在线免费| 亚洲欧洲免费视频| 91精品福利自产拍在线观看| 亚瑟天堂久久一区二区影院| 日韩毛片免费观看| 69国产精品视频免费| 中文字幕66页| 国产尤物在线播放| 精久久久久无码区中文字幕| 亚洲第一视频网站| 久久久久国产精品熟女影院| 四虎成人精品| 在线国产三级| 成人午夜久久| 91国内在线观看| 视频二区国产精品职场同事| 波多野吉衣一区二区三区av| 在线精品自拍| 国产精品人莉莉成在线播放| 亚洲大尺码专区影院| 亚洲中文无码av永久伊人| 国产午夜福利亚洲第一| 国产精品天干天干在线观看| 国产精品自拍露脸视频| 人妻21p大胆| 任我操在线视频| 国产精品lululu在线观看| 色婷婷亚洲综合五月| 亚洲高清无码久久久| 亚洲v日韩v欧美在线观看| 国产成人91精品| 熟女日韩精品2区| 国产福利免费视频| 亚洲成aⅴ人在线观看| 亚洲第一精品福利| 日韩欧美国产综合| 黄色成年视频| 久久精品91麻豆| 五月天久久综合| 国产swag在线观看| 思思热在线视频精品| 99热这里只有成人精品国产| 国产亚洲精久久久久久久91| 欧美特黄一级大黄录像| 538精品在线观看| 亚洲第一页在线观看| 国产一区免费在线观看| 免费看av在线网站网址| 91在线丝袜| 亚洲av无码人妻| 亚洲成A人V欧美综合| 九九这里只有精品视频| 国产真实乱人视频| 日韩a级毛片| 99热这里只有精品免费| 成人亚洲天堂| 国产精品无码久久久久AV| 91精品视频播放| 毛片最新网址| 2020最新国产精品视频| 免费看的一级毛片| 国产精品亚洲αv天堂无码| 国产麻豆永久视频| 亚洲男人的天堂在线观看| 97综合久久| 92午夜福利影院一区二区三区| 国产精品毛片一区视频播| 国产第一福利影院| 在线免费a视频| 国产精品私拍在线爆乳| 91av国产在线|