arcgis二次開發(fā)實驗報告_第1頁
arcgis二次開發(fā)實驗報告_第2頁
arcgis二次開發(fā)實驗報告_第3頁
arcgis二次開發(fā)實驗報告_第4頁
arcgis二次開發(fā)實驗報告_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、實驗四 空間要素的選擇一、 實驗?zāi)康模杭由罾斫饨涌诰幊痰幕舅枷?,熟悉接口編程的方法;理解圖層幾何要素選擇的基本思想與思路;掌握要素選擇的幾種基本方法,實現(xiàn)矩形、橢圓、圓形和任意形狀的選擇。二、 實驗內(nèi)容:調(diào)用 ESRI.ArcGIS.Controls 接口實現(xiàn)要素選擇;2. 通過創(chuàng)建 class SelectByEllipseClass 類編寫要素選擇程序。 三、實驗心得:通過自己動手編寫程序,總結(jié)了一下調(diào)用系統(tǒng)選擇工具和自己寫類實 現(xiàn)選擇功能的優(yōu)缺點:(1)ESRI.ArcGIS.Controls 簡單易學(xué),能夠很好地實現(xiàn)基礎(chǔ)平臺接口的復(fù)用,體現(xiàn)出二 次開發(fā)利用基礎(chǔ)平臺的特點;缺點是,僅能

2、 ArcGis 已經(jīng)實現(xiàn)了的功能,開發(fā)靈活性受限制, 難以創(chuàng)新。(2)創(chuàng)建工具類,優(yōu)點是能夠根據(jù)需要編寫任意的工具,實現(xiàn)系統(tǒng)尚未封裝在內(nèi)的功能;但對編程人員水平要求高,要熟練掌握基礎(chǔ)平臺開發(fā)語言,難度較大。這就要求在選擇兩種方法時慎重考慮。要熟悉 ArcGis 的基本功能,根據(jù)用戶需求要能 夠迅速知道,利用 ArcGis 該功能是否可以實現(xiàn),是,如何實現(xiàn)的,否,與哪些功能類似, 就要自己仿照次功能從基礎(chǔ)類寫起。四、實驗內(nèi)容:1.功能展示:(1)菜單選項-目* torralQA-X SdMSdf!-f4c Mop cxvaiUsn idjrflilT Vi mZoosnlriAtbibjDr g

3、rv耳站-目* torralQA-X SdMSdf!-f4c Mop cxvaiUsn idjrflilT Vi mZoosnlriAtbibjDr grv耳站NQr即Elpae 5ttKn2)矩形選擇3)圓形選擇:4)橢圓形工具選擇:uI?-*左園 口2|x.Form!Map OpsratonuI?-*左園 口2|x.Form!Map OpsratonLayout i ewBala Vi ewE 夕 Map-7片陣實現(xiàn)方法一:調(diào)用系統(tǒng) ESRI.ArcGIS.Controls 實現(xiàn)(1)設(shè)置 flag:strMouseDownCtl 來獲取鼠標(biāo)按下的菜單。用該方法僅實現(xiàn)了矩形選擇和圓形 選擇

4、。private void retagelToolStripMenuItem_Click(object sender, EventArgs e)strMouseDownCtl = RectSelection;private void circleSelectionToolStripMenuItem_Click(object sender, EventArgs e)strMouseDownCtl = CircleSelection;(2)根據(jù)strMouseDownCtl獲取的事件調(diào)用系統(tǒng)相應(yīng)的選擇工具case RectSelection:axMapControll.CurrentTool =

5、null;axMapControll.MousePointer =ESRI.ArcGIS.Controls. esriControlsMousePointer.esriPointerCrosshair;IGeometry pGeom = axMapControll.TrackRectangle();axMapControll.Map.ClearSelection();axMapControll.Refresh(esriViewDrawPhase.esriViewGeoSelection,axMapControll.Map.ActiveGraphicsLayer, null);axMapCont

6、roll.Map.SelectByShape(pGeom, null, false);axMapControll.Refresh(esriViewDrawPhase.esriViewGeoSelection, axMapControll.Map.ActiveGraphicsLayer, null);break;case CircleSelection:axMapControll.CurrentTool = null;axMapControll.MousePointer =ESRI.ArcGIS.Controls. esriControlsMousePointer.esriPointerCros

7、shair;IGeometry pGeom = axMapControll.TrackCircle();axMapControll.Map.ClearSelection(); axMapControll.Refresh(esriViewDrawPhase.esriViewGeoSelection, axMapControll.Map.ActiveGraphicsLayer, null);axMapControll.Map.SelectByShape(pGeom, null, false); axMapControll.Refresh(esriViewDrawPhase.esriViewGeoS

8、election,axMapControll.Map.ActiveGraphicsLayer, null);break;實現(xiàn)方法二:通過創(chuàng)建工具類實現(xiàn)選擇(1)創(chuàng)建類:SelectByEllipse.es3 Solution MapApplacatio-n (1 project 旦 Properties References- i_J Attribute Queryl-.i binj _/ Ellipse SelectionI;冋 5已皚匚ticn didlocLCE 曹 SeledzionP ropertyClass. cs - 一.3凰 ClassDiagrainl .cd Forml.C

9、E習(xí) Program.esclass SelectByEllipseClass 代碼結(jié)構(gòu): h:=iti esp:c e A-crLgmef Jugin S已丄 ectclass Sei e c OyEll i ps eCi aspi_i c I&e :rTic + ry n_gft omeiry = ivull;pr i vat。Axil pC :n+r ol m_m ipC :-ra+rc-l 二 tlijII ;pubLi c TS al a c t i onEnvi rorun antal a ct i anlnvi r om ant:private IFoint m_centerPo

10、int 二 null:private IF ? i tlt m_tuFi:iirLt 二 nuLl;private b udjI mjti due eD cwn 二 :31Ee;private IEzlvhI 匚匸怕 rTi_eDveLi:ipe 二 nev Envel up e U as IErLvelrpH;pubL i cpubL i cIGe jrn f try Gerim mtry”pubL i cpubL i cZErLTelof e Envelope ?!?|L+pubLi cSele c iByElL ipseClasz (Ajdl apC ontr ol mapC crntr

11、ol, StjlHuti onFr op er tjClas s sele cti onfr op er ty)|. . . |Elv: i 1n -ifC :fltr : 1_OnAf t arDf(.ot j sat sender , IM ipC or.+r :lEveiLts2_0rAt erLr awEvtn+ e,)|. . . |uoid.no.pControl_OnMoucallp (objact Eandair TMapIZontrolEVintc2_0nHDUEaUfEvaxit a)|_voidn:i:Control_0nfflouseMove (object Eende

12、r. IMapContirolEent!E2_ClrMoaEEMovEEEnt e)|. . Ivo i dn:fControlJjrJilciUEeDown (objeci Eender IMapCoritrolEventE2_0riMouzeDownEvtrLt e)|. . |pr i -at e 工 Gm on e try C onE t.F匚 tEll i p ti cSm- (.ZF c i nt c ent o i nt., IP o irLt t oF oi nt2)在 Ellipse Selection 菜單下編寫響應(yīng)事件private void ellipseSelectionToolStripMenuItem_Click(object sender, EventArgs e)SelectByEllipseClass selectByEllipse = new SelectByEllipse

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論