資源描述:
《基于arcgis engine的gis軟件開(kāi)發(fā)方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于ArcGISEngine的GIS軟件開(kāi)發(fā)方法一、引言由于GIS可以同時(shí)提供表征地理位置的圖形信息和空間對(duì)象的屬性信息,以及其獨(dú)有的空間分析功能,目前已被廣泛應(yīng)用于測(cè)繪、遙感、國(guó)土、國(guó)防、資源、環(huán)境、交通、水利、電力、地質(zhì)、農(nóng)業(yè)、林業(yè)、城市規(guī)劃與管理、生活信息服務(wù)等領(lǐng)域。GIS已經(jīng)成為一項(xiàng)服務(wù)于信息化建設(shè)、生產(chǎn)、生活、科研的技術(shù)工具,如何快速、低成本地開(kāi)發(fā)出滿足應(yīng)用需求的GIS系統(tǒng)已經(jīng)引起GIS軟件開(kāi)發(fā)商、公司、企業(yè)及科研院所的關(guān)注。目前許多專業(yè)的GIS軟件開(kāi)發(fā)商都推出了自己的二次開(kāi)發(fā)產(chǎn)品,如Esri公司先后推出了MapObject、ArcOb
2、jects和ArcGISEngine;MapInfo公司推出了MapX;國(guó)內(nèi)的Su-perMap、MapGIS及GeoStar也都具備二次開(kāi)發(fā)的功能。在二次開(kāi)發(fā)平臺(tái)選型中沒(méi)有最好的,只有最合適的,各類產(chǎn)品都有自己的優(yōu)勢(shì)與劣勢(shì)。但當(dāng)前主流的二次開(kāi)發(fā)產(chǎn)品還屬于全球GIS行業(yè)的領(lǐng)頭羊Esri公司的ArcGISEngine產(chǎn)品,它具有簡(jiǎn)潔、靈活、易用、可移植性強(qiáng)、開(kāi)發(fā)成本低等優(yōu)點(diǎn),受到了GIS人員的喜愛(ài)。但由于ArcGISEngine開(kāi)發(fā)方式多樣、類庫(kù)龐大、接口眾多等原因,使得開(kāi)發(fā)者很難在短期內(nèi)掌握好,最終導(dǎo)致開(kāi)發(fā)出的系統(tǒng)結(jié)構(gòu)不合理、性能差、界面不美觀等
3、。為此,本文基于以往多個(gè)GIS項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn)以及對(duì)ArcGISEngine的深入研究,由淺入深地介紹了利用ArcGISEngine開(kāi)發(fā)GIS軟件的方法。希望給GIS同行們帶來(lái)有益的借鑒作用。二、ArcGISEngine概述ArcGISEngine是美國(guó)Esri公司發(fā)布的一款GIS二次開(kāi)發(fā)產(chǎn)品,它是目前GIS業(yè)界最為著名的組件式GIS開(kāi)發(fā)產(chǎn)品。它是對(duì)ArcGISDesktop開(kāi)發(fā)包ArcObjects組件集中的大部分接口、類、庫(kù)進(jìn)行封裝后構(gòu)成的獨(dú)立的嵌入式組件,不依賴ArcGISDesk?top桌面平臺(tái)。它由兩部分組成:面向開(kāi)發(fā)人員的開(kāi)發(fā)工具包Ar
4、cGISenginedeveloperkit和面向最終用戶的運(yùn)行時(shí)環(huán)境ArcGISengineruntime11。ArcGISEngine可以在不同開(kāi)發(fā)語(yǔ)言環(huán)境(、.、Ja-va、C++)下開(kāi)發(fā),它提供了一系列可以在ArcGISDesktop框架之外使用的GIS組件和可視化控件,它包含20多個(gè)類庫(kù),比如Geometry、Display、Geodata?base、System、Carto等,用戶通過(guò)引用各個(gè)類庫(kù)中的接口并配合控件的使用,可以方便地實(shí)現(xiàn)GIS功能,這使得開(kāi)發(fā)者能夠?qū)⒕械浇鉀Q應(yīng)用程序中的業(yè)務(wù)邏輯中,而不是從頭開(kāi)始開(kāi)發(fā)GIS功能。開(kāi)
5、發(fā)人員可以將定制的GIS功能嵌入到已有的應(yīng)用軟件中或創(chuàng)建自定義應(yīng)用軟件0。三、ArcGISEngine組件應(yīng)用方法1.類庫(kù)體系結(jié)構(gòu)ArcGISEngine從功能層次上劃分為以下五個(gè)部分:①基礎(chǔ)服務(wù):由GIS核心ArcObjects構(gòu)成,幾乎所有GIS應(yīng)用程序都需要;②數(shù)據(jù)存取:對(duì)矢量和柵格數(shù)據(jù)進(jìn)行存取;③地圖表達(dá):實(shí)現(xiàn)地圖的標(biāo)注、符號(hào)化及專題圖的渲染;④地圖分析:提供空間建模與分析功能;⑤開(kāi)發(fā)者組件:用于開(kāi)發(fā)應(yīng)用程序的界面控件,如制圖控件、3D控件、工具條、TOC等。針對(duì)不同方面的功能,ArcGISEngine提供了相圖1中,System類庫(kù)是A
6、rcGIS最底層的組件庫(kù),該類庫(kù)包含為構(gòu)成ArcGIS的其他類庫(kù)提供服務(wù)的組件;SystemUI庫(kù)包含用戶界面組件接口定義,這些用戶界面組件可以在ArcGISEngine中進(jìn)行擴(kuò)展,比如Imand和ITool;Geometry類庫(kù)包含了核心幾何對(duì)象,如點(diǎn)、線、多邊形等,并且定義和實(shí)現(xiàn)坐標(biāo)系統(tǒng)的空間參考對(duì)象;Display類庫(kù)包含了支持向輸出設(shè)備繪制符號(hào)的組件;Server類庫(kù)包含允許用戶連接并操作ArcGISServer的對(duì)象;Output類庫(kù)用于創(chuàng)建圖形輸出到諸如打印機(jī)和繪圖儀等設(shè)備,或以文件的方式導(dǎo)出,如導(dǎo)出為柵格圖像格式(JPG、BMP等)
7、。Geodatabase類庫(kù)為地理數(shù)據(jù)庫(kù)提供了編程API,支持多種類型對(duì)象(如Feature、tables、-aplayers和renders可作用于所有支持的數(shù)據(jù)類型。Location類庫(kù)包含了與位置數(shù)據(jù)操作相關(guān)的對(duì)象,位置數(shù)據(jù)可以是路徑事件或地理編碼位置;NetFile方法實(shí)例化一個(gè)對(duì)象來(lái)創(chuàng)建。上述三種類之間的關(guān)系有四種(如圖2所示):①繼承(inheritance):圖中的空心三角箭頭表示繼承關(guān)系;②組成(position):圖中的菱形表示組成關(guān)系;③關(guān)聯(lián)(association):圖中的線表示關(guān)聯(lián)關(guān)系;④實(shí)例化(instantiation
8、):圖中的虛線箭頭表示實(shí)例化關(guān)系。接口定義了一個(gè)對(duì)象能做什么,它實(shí)現(xiàn)了一組功能的屬性、方法及事件。ArcGISEngine中,一個(gè)接口由