資源描述:
《基于arc gis engine 的gis 開(kāi)發(fā)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、0?引言目前,地理信息系統(tǒng)已廣泛地應(yīng)用于眾多領(lǐng)域,為各個(gè)相關(guān)行業(yè)提供了高效的空間信息處理能力和強(qiáng)大的決策支持服務(wù)。為滿足需求,GIS?開(kāi)發(fā)人員需要具有構(gòu)建領(lǐng)域?qū)S们乙子谑褂玫膽?yīng)用軟件的能力,軟件需將廣泛應(yīng)用的GIS?技術(shù)與友好用戶的經(jīng)驗(yàn)結(jié)合起來(lái)。這些軟件如果從頭開(kāi)始構(gòu)建,將是一項(xiàng)繁冗的開(kāi)發(fā)工作,會(huì)很耗費(fèi)時(shí)間,并且成本不菲?,F(xiàn)階段,組件技術(shù)已經(jīng)廣泛的被引人到GIS?軟件的設(shè)計(jì)與開(kāi)發(fā)中,使得高效便捷的開(kāi)發(fā)應(yīng)用型地理信息系統(tǒng)成為現(xiàn)實(shí)。國(guó)內(nèi)外著名的GIS?廠商都相繼推出了他們的Gls?組件,其中以ESRI?公司的組件產(chǎn)品Arcobjects?最為著名。ArcGISEngine?是一組打包的核心
2、Arcobjects?組件,相比ArcobjectS?降低了開(kāi)發(fā)難度,也大大提高了GIS?應(yīng)用程序的開(kāi)發(fā)效率。因此,本文主要以ArcGIsEngin?。為研究對(duì)象,剖析其系統(tǒng)開(kāi)發(fā)方法,并作出最終的開(kāi)發(fā)實(shí)例。1ArcGISEngine?開(kāi)發(fā)簡(jiǎn)介ArcGIS?是一組集成家庭式的GIS?軟件產(chǎn)品,可在單項(xiàng)工程、工作組以及企業(yè)級(jí)項(xiàng)目中用于發(fā)布完善的、可升級(jí)的GIS?系統(tǒng)。它是基于一個(gè)可共享的GIS組件一Arcohjects?的公用庫(kù)來(lái)構(gòu)建的。Arcobjects?是基于MicrosoftCOM?技術(shù)所構(gòu)建的一系列COM?組件產(chǎn)品,不是為最終用戶而是專門為開(kāi)發(fā)人員提供的二次開(kāi)發(fā)軟件,通過(guò)Arco
3、bjects?,用戶可以非常方便地開(kāi)發(fā)出功能強(qiáng)大的GIS應(yīng)用系統(tǒng)。但它不是一個(gè)獨(dú)立的應(yīng)用產(chǎn)品,不能脫離ArcGIS?平臺(tái),只有在購(gòu)買ArcGIS?產(chǎn)品后,才能利用其提供的組件對(duì)象進(jìn)行應(yīng)用開(kāi)發(fā)。ArcGIsEngine是一組完備的并且打包的嵌人式GIS?組件庫(kù)和工具庫(kù),開(kāi)發(fā)人員可用來(lái)創(chuàng)建新的或擴(kuò)展已有的桌面應(yīng)用程序。使用ArcGISEngine?,開(kāi)發(fā)人員可以將GIS?功能嵌入到已有的應(yīng)用軟件中,或嵌人到商業(yè)生產(chǎn)應(yīng)用軟件中,還可以創(chuàng)建集中式自定義應(yīng)用軟件,并將其發(fā)送給機(jī)構(gòu)內(nèi)的多個(gè)用戶。ArcGISEngine?由兩個(gè)產(chǎn)品組成:構(gòu)建軟件所用的開(kāi)發(fā)工具包于以及使已完成的應(yīng)用程序能夠運(yùn)行的可再
4、發(fā)布的Runtime?(運(yùn)行時(shí)環(huán)境)。AreGISEngine?開(kāi)發(fā)工具包是一個(gè)基于組件的軟件開(kāi)發(fā)產(chǎn)品,可用于構(gòu)建自定義GIS?和制圖應(yīng)用軟件。ArcGISEngineRuntime?是一個(gè)使終端用戶軟件能夠運(yùn)行的核心Arcobjects?組件產(chǎn)品,并且將被安裝在每一臺(tái)運(yùn)行ArcGISEngine?應(yīng)用程序的計(jì)算機(jī)上。ArcGIsEngine?開(kāi)發(fā)包包括三個(gè)關(guān)鍵部分:(l?)控件是ArcGIS?用戶界面的組成部分,包括地圖控件和框架控件,地圖控件提供了可視化的組件允許開(kāi)發(fā)者對(duì)數(shù)據(jù)進(jìn)行渲染、交互、分析等,比如地圖控件:M?即Control?、PageLayoutControl?和scen
5、?。control;?框架控件TOolbarControl?和TOCControl?在平常GIS?功能中大部分都與地圖控件打交道,可以把地圖控件與框架控件進(jìn)行關(guān)聯(lián),能快速直接反映地圖控件中圖層的變化及可見(jiàn)性。?(2?)工具條是GIS?工具的集合,在應(yīng)用程序中用它來(lái)和地圖及地理信息交互。工具包括平移、縮放、點(diǎn)擊查詢和與地圖交互的各種選擇工具。工具在應(yīng)用界面上用工具條的方式展現(xiàn)。通過(guò)調(diào)用一套豐富的常規(guī)的工具和工具條,建立定制應(yīng)用的過(guò)程被簡(jiǎn)化了。開(kāi)發(fā)者可以很容易地將選擇的工具拖放到定制應(yīng)用中或創(chuàng)建自己定制的工具來(lái)實(shí)現(xiàn)與地圖的交互。(3?)對(duì)象庫(kù)是可編程ArCobjectS?組件的集合,包括幾
6、何圖形到制圖、GIS?數(shù)據(jù)源和geodatase?等一系列庫(kù)。在windows,uNIx?和Linu、平臺(tái)的開(kāi)發(fā)環(huán)境下使用這些庫(kù),程序員可以開(kāi)發(fā)出從低級(jí)到高級(jí)的各種定制的應(yīng)用。2ArcGIsEngine?系統(tǒng)開(kāi)發(fā)ArcGIsEngin?。是一個(gè)獨(dú)立的應(yīng)用產(chǎn)品,具備快速開(kāi)發(fā)和功能擴(kuò)展能力,最少的開(kāi)發(fā)成本,可以非常方便地開(kāi)發(fā)出功能強(qiáng)大的GIS?應(yīng)用系統(tǒng)。本系統(tǒng)采集某區(qū)的交通旅游數(shù)據(jù),采用VB6.0?作為開(kāi)發(fā)前端,基于ArcGISEngine?來(lái)進(jìn)行設(shè)計(jì)開(kāi)發(fā),來(lái)說(shuō)明GIS?開(kāi)發(fā)中ArcGIsEngin?。開(kāi)發(fā)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。2.1?系統(tǒng)功能模塊系統(tǒng)以VB6.O?為開(kāi)發(fā)工具,主要使用ArcG
7、ISEngine?中的MapControl?、olbarcontrol和Toccontrol?控件來(lái)進(jìn)行開(kāi)發(fā)。具體功能包括:數(shù)據(jù)加載和圖層添加;空間數(shù)據(jù)瀏覽的基本功能:地圖放大、縮小、漫游和視圖轉(zhuǎn)換等;數(shù)據(jù)編輯的基本功能和打印功能;空間數(shù)據(jù)和屬性數(shù)據(jù)的雙向查詢、實(shí)體查詢功能等。具體功能如下圖所示:2.2?具體模塊實(shí)現(xiàn)開(kāi)發(fā)方法(l?)數(shù)據(jù)加載:實(shí)現(xiàn)從指定路徑讀入*.mxd?文件并顯示,如果不存在顯示出錯(cuò)信息。OnErrorResumeNextDi