摘 要: ArcGIS Engine作為ESRI公司最新推出的嵌入式組件,具有高效便捷的特點,由于其開發(fā)時完全脫離了ArcGIS桌面平臺,因而為用戶提供了一個可供選擇的,有針對性的,低成本的GIS應(yīng)用選擇。本文在簡要介紹ArcGIS Engine特點的基礎(chǔ)上,對水下地形等高線的斷線連接問題進行了研究和實現(xiàn),并闡述了使用ArcGIS Engine技術(shù)在VC++環(huán)境下連接不連續(xù)等高線的具體實現(xiàn)過程。
關(guān)鍵詞: ArcGIS Engi;等高線;斷線連接
1. 引 言
地理信息系統(tǒng)的軟件技術(shù)正日益迅猛發(fā)展,隨著對空間數(shù)據(jù)需求的增加,把GIS與嵌入式組件技術(shù)結(jié)合形成一個獨立的嵌入式地理空間集成平臺是當前GIS研究領(lǐng)域的重要趨勢,而基于COM技術(shù)的ArcObjects為GIS發(fā)展提供了前所未有的靈活性,軟件開發(fā)者只要有一個可編程的GIS工具包,在構(gòu)建應(yīng)用時提供常規(guī)的GIS功能即可[1]。ESRI公司將ArcObjects和MapObjects合并而成的ArcGIS Engine為用戶提供了有針對性的GIS功能,利用ArcGIS Engine進行GIS應(yīng)用開發(fā)時徹底脫離了ArcGIS桌面平臺,提供了新的,更為有效的開發(fā)GIS方式。
2. 開發(fā)關(guān)鍵技術(shù)
2.1 ArcGIS Engine開發(fā)技術(shù)
ArcGIS Engine則是由AO中的核心組件集單獨封裝出來,可以脫離ArcGIS桌面版單獨運行的組件庫,能在各種編程接口中調(diào)用,減小了用戶的使用費用。利用ArcGIS Engine進行GIS的二次開發(fā)具有相當大的研究價值和發(fā)展前景,其主要特點有:
(1) 完整的嵌入式GIS組件庫:ArcGIS Engine提供了內(nèi)核操作、顯示操作、分析操作、數(shù)據(jù)存取操作、空間對象操作、系統(tǒng)操作、輸出操作等組件群,利用這些組件群,可以搭建一個客戶化的服務(wù)平臺。很多情況下,用戶可能只需要在自己的系統(tǒng)平臺中實現(xiàn)部分特定的GIS功能,而不需要全套功能的ArcGIS桌面版,按照以往的AO開發(fā)要求,用戶是必須安裝龐大的ArcGIS桌面版的,而ArcGIS Engine推出后,開發(fā)者就可以在自己的集成環(huán)境下構(gòu)建某些特定的GIS功能,將需要用到的GIS功能嵌入到自己的集成環(huán)境中,而不需要安裝桌面版,從而減小了定制和開發(fā)的約束,降低了用戶使用成本。
(2) 支持多種開發(fā)環(huán)境:ArcGIS Engine可以在Windows,UNIX,和Linux桌面上運行并支持一系列的應(yīng)用軟件開發(fā)環(huán)境,例如:COM,Visual Basic 6,C++,Microsoft Visual Studio .NET,Java等開發(fā)環(huán)境 (3) 開發(fā)方便快捷:ArcGIS Engine包含一個構(gòu)建定制應(yīng)用的開發(fā)包,開發(fā)者只需在自己的計算機上安裝此工具包就可以很方便地進行開發(fā)。同時ArcGIS Engine通過在開發(fā)環(huán)境中添加控件、工具、菜單條和對象庫,在應(yīng)用中嵌入GIS功能,可擴展性較強。
2.2 斷線連接技術(shù)
目前GIS系統(tǒng)的數(shù)據(jù)源仍舊大量的來源于測繪部門的CAD格式數(shù)據(jù),而在早期的CAD制作過程中,并沒有考慮到等高線在GIS中連續(xù)且閉合的需求,CAD格式的等高線僅僅為了滿足出圖的需要被打散成間隔不等的斷線,且高程屬性信息僅僅以標注的形式表達,這些數(shù)據(jù)轉(zhuǎn)入GIS后根本無法滿足空間分析的需求,因此必須先將大量的斷線進行初步的連接。近幾年來,等高線信息的自動提取問題已有了突破性進展,但現(xiàn)有研究中采用的實驗數(shù)據(jù)一般是基于等高線比較連續(xù)的情況,僅存在局部特殊的斷點,各種匹配算法也主要在對一些成因較簡單的斷點進行處理時能取得較好的效果,而針對CAD轉(zhuǎn)入GIS系統(tǒng)時大量斷線數(shù)據(jù)的批處理連接還沒有較好的方法。
已有的斷線連接方法很多,主要包括基于費曼碼的斷線連接,基于數(shù)學(xué)形態(tài)學(xué)膨脹與收縮原理的斷線連接法,基于等高線空間關(guān)系結(jié)構(gòu)約束的最大集團圖搜索法以及顧及拓撲關(guān)系的連接方法等[3],這些方法都是從純算法角度解決斷線連接問題。而隨著地理信息系統(tǒng)的廣泛應(yīng)用,如何充分應(yīng)用GIS系統(tǒng)中的空間分析功能進行基于空間拓撲關(guān)系的斷線連接技術(shù)成為新的研究切入點。
GIS中提供了強大的空間拓撲關(guān)系的定義和分析功能,如相交、相離、包含等,使得原本利用數(shù)學(xué)方法表達起來及其復(fù)雜的空間位置關(guān)系在GIS中可以用比較簡單的語句進行判斷。主要還是采用GIS本身的COM組件來實現(xiàn)針對空間對象的操作,通過組件中定義的接口來獲得對象及其相應(yīng)的屬性,因此在GIS平臺下進行斷線連接技術(shù)的研究與實現(xiàn)具有方便快捷的特點。
本文針對大批量的水下地形等高線數(shù)據(jù)由CAD格式轉(zhuǎn)入GIS系統(tǒng)時的斷線連接問題,探討了基于最短距離和最小角度約束的斷線連接技術(shù),即完全基于線與線之間的空間位置關(guān)系,將距離最近,沿延長線方向角度變化最小的線進行連接,主要算法過程設(shè)計如下:
(1) 以每根等高線對象的終點為圓心,一定長度閾值為半徑做緩沖,計算落入緩沖區(qū)內(nèi)的其它線對象的個數(shù);
(2) 若落入緩沖區(qū)的線對象正好是一根且滿足角度約束條件,則直接連接;
(3) 若多于一根,則減小緩沖區(qū)半徑;
(4) 若沒有線對象落入緩沖區(qū),則增加緩沖區(qū)半徑,當增加到給定的最大半徑時仍沒有搜索到滿足條件的線對象時表明已經(jīng)到達圖幅邊緣,此時停止搜索。
本次實驗主要用于“江蘇省長江河道監(jiān)測管理系統(tǒng)”中大量等高線數(shù)據(jù)由CAD轉(zhuǎn)入GIS時的數(shù)據(jù)處理工作,僅僅用到少量GIS功能,因此選擇采用ArcGIS Engine組件將所需要的功能嵌入到自己的應(yīng)用程序中。
3、結(jié)束語
采用ArcGIS Engine不僅使得系統(tǒng)運行效率較高,且不需要安裝龐大的ArcGIS桌面版,僅需要在自己的系統(tǒng)中嵌入特定的GIS功能,采用自己熟悉的編程語言進行開發(fā)即可。本文介紹了組件式GIS,AO、AE技術(shù),并以水下地形等高線的斷線連接為實例,探討了基于AE利用VC++6.0進行應(yīng)用程序開發(fā)的方法,對實踐有一定的借鑒意義。
參考文獻
[1] 朱 政.通過ArcGIS Engine構(gòu)建GIS應(yīng)用[Z],ESRI中國北京有限公司.
[2] 張 斌. 基于ArcGIS Engine的GIS開發(fā)技術(shù)[J],武漢大學(xué)研究生學(xué)報(自然科學(xué)版),2004,3(21) :173-176.
[3] 陳 丹,龍 毅.基于知識的等高線斷點連接方法[J].測繪信息與工程,2003,28(3) ,31-33.
[4] 吳 瑋,李小帥,張斌. 基于ArcGISEngine的GIS開發(fā)技術(shù)探討[J].科學(xué)技術(shù)與工程, 2006,6(2):176-178.
[5] ESRI ArcObject Developer Help[Z],Environmental Systems Research Institute Inc,2002.
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/zhinengkexuejishulw/18719.html