ArcEngine地圖基本操作的實(shí)現(xiàn)實(shí)用教案_第1頁
ArcEngine地圖基本操作的實(shí)現(xiàn)實(shí)用教案_第2頁
ArcEngine地圖基本操作的實(shí)現(xiàn)實(shí)用教案_第3頁
ArcEngine地圖基本操作的實(shí)現(xiàn)實(shí)用教案_第4頁
ArcEngine地圖基本操作的實(shí)現(xiàn)實(shí)用教案_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 ArcEngine提供大量(dling)高級(jí)開發(fā)控件,使開發(fā)人員可以建立或擴(kuò)展GIS應(yīng)用程序和創(chuàng)建高質(zhì)量的地圖用戶界面。包括MapControl、PageLayoutControl、ReaderControl、TOCControl和ToolbarControl。GlobeControl和SceneControl也可以獲得,但使用這兩個(gè)控件的應(yīng)用程序必須具有ArcEngine的3D分析選項(xiàng)授權(quán)。第1頁/共57頁第一頁,共58頁。嵌入式組件:可拖放到可視化設(shè)計(jì)環(huán)境提供的容器窗體或?qū)υ捒蛑?,并可調(diào)整(tiozhng)控件的大小和位置。屬性頁:右鍵單擊控件并選擇“屬性”菜單項(xiàng)。ArcObjects:

2、每個(gè)控件為其封裝的ArcObjects上頻繁使用的屬性和方法提供了快捷方式;每個(gè)控件還有一個(gè)執(zhí)行公共任務(wù)的幫助方法。事件:每個(gè)控件都會(huì)響應(yīng)終端用戶的鍵盤和鼠標(biāo)交互而觸發(fā)事件。響應(yīng)發(fā)生在控件內(nèi)的行為會(huì)觸發(fā)一些其他事件。1.ArcGIS控件主題(zht)和概念第2頁/共57頁第二頁,共58頁。1.ArcGIS控件主題(zht)和概念伙伴控件:ToolbarControl和TOCControl都要與另一個(gè)“伙伴控件”協(xié)同工作??丶睿篈rcEngine提供了一系列命令、工具和菜單與ArcGIS控件協(xié)同工作;開發(fā)人員也可以通過創(chuàng)建自定義命令、工具和菜單來擴(kuò)展ArcEngine提供的命令集。地圖制作(

3、zhzu):ArcGIS Desktop應(yīng)用程序可用于預(yù)制作(zhzu)能被裝載到ArcGIS控件中的文檔,以便快速生產(chǎn)高質(zhì)量的地圖。第3頁/共57頁第三頁,共58頁。2. MapControl和PageLayoutControlMapControl和PageLayoutControl對(duì)應(yīng)于ArcMap桌面應(yīng)用程序的“數(shù)據(jù)”和“布局”視圖。用ArcMap創(chuàng)作的地圖文檔可以裝載到這兩個(gè)控件中。地圖文檔可在設(shè)計(jì)時(shí)通過這兩個(gè)控件的屬性頁設(shè)置,控件可以被設(shè)置為“鏈接”或“包含(bohn)”地圖文檔;地圖文檔也可以使用LoadMxFile方法通過編程裝載到控件中。MapControl和PageLayou

4、tControl不僅可以讀取地圖文檔,還可以寫入地圖文檔(*.mxd)。第4頁/共57頁第四頁,共58頁。3. GlobeControl和SceneControlGlobeControl和SceneControl對(duì)應(yīng)于ArcGlobe和ArcScene桌面應(yīng)用程序的三維試圖(sht)。用ArcGlobe和ArcScene應(yīng)用程序創(chuàng)作的Globe和Scene文檔可以分別裝載到GlobeControl和SceneControl中。這兩個(gè)控件都具有內(nèi)置的導(dǎo)航功能,運(yùn)行終端用戶移動(dòng)三維視圖和可視化三維數(shù)據(jù),而不必使用控件命令。要使用內(nèi)置的導(dǎo)航工具,必須通過屬性頁或者編程設(shè)置Navigate屬性。第5頁

5、/共57頁第五頁,共58頁。4. ReaderControlReaderControl對(duì)應(yīng)于ArcReader桌面應(yīng)用程序的“數(shù)據(jù)”和“布局”視圖及其內(nèi)容表(TOC)。該控件還包含ArcReader桌面應(yīng)用程序使用的內(nèi)部窗口和工作,如Find窗口和Identify工具等。用ArcMap桌面應(yīng)用程序創(chuàng)造并用ArcGIS Publisher擴(kuò)展模塊發(fā)布的發(fā)布地圖文檔(PMF)若在發(fā)布時(shí)設(shè)置為允許裝載到定制的ArcReader應(yīng)用程序中,則可以裝載到ReaderControl中。ReaderControl中有一個(gè)簡單的自包含對(duì)象模型,提供ArcReader桌面應(yīng)用程序所有功能而不需要(xyo)訪問A

6、rcObjects。第6頁/共57頁第六頁,共58頁。5. TOCControl和ToolbarControlTOCControl要與一個(gè)“伙伴控件”協(xié)同工作?!盎锇榭丶笨稍谠O(shè)計(jì)時(shí)通過TOCControl屬性頁設(shè)置或在駐留TOCControl的容器被顯示(xinsh)時(shí)用SetBuddyControl方法通過編程設(shè)置。ToolbarControl要與一個(gè)“伙伴控件”協(xié)同工作。“伙伴控件”可在設(shè)計(jì)時(shí)通過ToolbarControl屬性頁設(shè)置或在駐留ToolbarControl的容器被顯示(xinsh)時(shí)用SetBuddyControl方法通過編程設(shè)置。 ToolbarControl可以駐留操作

7、其“伙伴控件”顯示(xinsh)的命令、工具和菜單。返回返回(fnhu)第7頁/共57頁第七頁,共58頁。1.目標(biāo)(mbio)創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序加載MXD文檔2.準(zhǔn)備工作Visual Studio 2005/2008ArcGIS Engine Developer kit 9.2制作ArcGIS實(shí)驗(yàn)數(shù)據(jù)地圖文檔MXD第8頁/共57頁第八頁,共58頁。3.設(shè)計(jì)(shj)流程圖 第9頁/共57頁第九頁,共58頁。4.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-1 第10頁/共57頁第十頁,共58頁??梢钥吹叫聞?chuàng)建的項(xiàng)目中自動(dòng)

8、加載了ToolBarControl、TocControl、LicenseControl、MapControl四個(gè)ArcGISEngine控件以及(yj)一個(gè).NET StatusStrip控件 4.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-1 第11頁/共57頁第十一頁,共58頁。5.加載MXD地圖(dt)文檔數(shù)據(jù)-1 第12頁/共57頁第十二頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-2 1. 動(dòng)Visual Studio .NET,并從新建項(xiàng)目對(duì)話框中創(chuàng)建一個(gè)新的Visual C# “Windows應(yīng)用程序”項(xiàng)目。2.

9、將項(xiàng)目命名為“DEMO”,并選擇位置存取該項(xiàng)目。3.在“工具箱”的“Windows窗體”標(biāo)簽欄中單擊右鍵,然后從上下文菜單中選擇“選擇項(xiàng)”(VS2005)“添加/移除項(xiàng)(I)”(VS2003);或者工具-選擇工具箱。4.在“選擇工具箱”中選擇“.NET Framework組件”,并復(fù)選“AxMapControl”,“AxPageLayoutControl”,“AxTOCControl”和“AxToolbarControl”,單擊確定(qudng)按鈕。這樣所選擇的控件將顯示在工具箱的Windows窗體標(biāo)簽欄中。第13頁/共57頁第十三頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS

10、 Engine桌面應(yīng)用程序-2 第14頁/共57頁第十四頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-2 第15頁/共57頁第十五頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-2 5.設(shè)置控件Anchor屬性(shxng),使控件大小隨窗口變化而變化第16頁/共57頁第十六頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-2 private void Form1_Load(object sender, EventArgs e) this.Location = new Poi

11、nt(0, 0); axToolbarControl1.Left = this.Left; axToolbarControl1.Width = this.Width; axToolbarControl1.Top = menuStrip1.Height; axTOCControl1.Left = this.Left; axTOCControl1.Top = axToolbarControl1.Top + axToolbarControl1.Height; axTOCControl1.Width = this.Width / 6; axTOCControl1.Height = this.Heigh

12、t - axToolbarControl1.Top - axToolbarControl1.Height; axMapControl1.Top = axTOCControl1.Top; axMapControl1.Height = axTOCControl1.Height; axMapControl1.Left = this.Left + axTOCControl1.Width; axMapControl1.Width = this.Width - axTOCControl1.Width; 第17頁/共57頁第十七頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)

13、用程序-2 using ESRI.ArcGIS.SystemUI;private void Form1_Load(object sender, EventArgs e) axToolbarControl1.AddItem(esriControls.ControlsMapZoomInTool, -1, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly); axToolbarControl1.AddItem(esriControls.ControlsMapZoomOutTool, -1, -1, false, 0, esriComman

14、dStyles.esriCommandStyleIconOnly); axToolbarControl1.AddItem(esriControls.ControlsMapZoomInFixedCommand, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly); axToolbarControl1.AddItem(esriControls.ControlsMapZoomOutFixedCommand, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly)

15、;第18頁/共57頁第十八頁,共58頁。6.創(chuàng)建(chungjin)第一個(gè)ArcGIS Engine桌面應(yīng)用程序-2 private void Form1_Load(object sender, EventArgs e) string filename =E:上課資料(zlio)測繪08-GIS開發(fā)mapSD.mxd; if ( axMapControl1.CheckMxFile (filename) ) axMapControl1.LoadMxFile(filename); /using ESRI.ArcGIS.Carto; /IActiveView activeViw = axMapCon

16、trol1.Map as IActiveView; / activeViw.Extent = axMapControl1.FullExtent; /axMapControl1.Refresh(); axTOCControl1.SetBuddyControl(axMapControl1); axToolbarControl1.SetBuddyControl(axMapControl1); 返回返回第19頁/共57頁第十九頁,共58頁。n加載圖層數(shù)據(jù)n地圖(dt)顯示基本控制第20頁/共57頁第二十頁,共58頁。1.加載圖層數(shù)據(jù)(shj) ArcEngine支持(zhch)多種文件類型,矢量數(shù)據(jù)如

17、:ArcInfo Coverage、ESRI Shapefile、AutoCAD的DXF和DWG文件等,柵格數(shù)據(jù)如JPG、TIFF、BMP、GRID等。此外還支持(zhch)企業(yè)數(shù)據(jù)庫中的矢量和柵格文件以及個(gè)人數(shù)據(jù)庫文件等。第21頁/共57頁第二十一頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件 添加ShapeFile文件一般要用到Workspace、WorkspaceFactory、FeatureWorkspace、FeatureClass、FeatureLayer等組件(z jin)類或者抽象類。第22頁/共57頁第二十二頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeF

18、ile文件p Workspace類 Workspace類表示工作區(qū),它是空間數(shù)據(jù)和非空間數(shù)據(jù)集的容器,它是一個(gè)類,因此不能被直接創(chuàng)建,而只能從別的對(duì)象那里獲得;它提供了使用和創(chuàng)建新的數(shù)據(jù)集的方法。根據(jù)esri Workspace的不同, Workspace可以分為以下幾種:文件系統(tǒng)工作區(qū)(Filesystem Workspace),Shapefile和ArcInfo的Workspace屬于這種;本地?cái)?shù)據(jù)庫工作區(qū)(LocalDatabase Workspace),例如Microsoft Access中存儲(chǔ)的個(gè)人地理(dl)數(shù)據(jù)庫;遠(yuǎn)程數(shù)據(jù)庫工作區(qū)(RemoteDatabase Workspace

19、),例如存放在Oracle、DB2等中需要使用ArcSDE的相關(guān)組件來方位的地理(dl)數(shù)據(jù)庫。第23頁/共57頁第二十三頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p Workspace類 從某種意義上來說,我們可以簡單地認(rèn)為一個(gè)工作區(qū)對(duì)應(yīng)ArcInfo的一個(gè)工作區(qū),一個(gè)包含Shapefile文件的文件夾。 Workspace實(shí)現(xiàn)了26個(gè)接口,每個(gè)接口又有各自的方法和屬性,我們在具體應(yīng)用中往往根據(jù)需要選擇性地使用這些方法和屬性來達(dá)到(d do)我們的目的。第24頁/共57頁第二十四頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p WorkspaceFacto

20、ry類 WorkspaceFactory是Workspace的調(diào)配者,通過它用戶可以打開(d ki)工作區(qū),它支持對(duì)工作區(qū)瀏覽和管理的方法,同時(shí)它也能夠連接到遠(yuǎn)程工作區(qū)。 從它派生出很多類,如ArcInfoWorkspaceFactory、Cad WorkspaceFactory、Shapefile WorkspaceFactory等。第25頁/共57頁第二十五頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p FeatureLayer類 要素(yo s)層,要素(yo s)Feature的集合及其可視化表達(dá)。p FeatureClass類 要素類,它是具有行為和屬性的空間實(shí)體的

21、集合;要素類中所有的要素都有同樣地屬性字段;另外,它有一個(gè)專門存放幾何圖形的字段。第26頁/共57頁第二十六頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件主要組件接口IWorkspaceFactory、IFeatureWorkspace、IFeatureClass、IFeatureLayer的屬性和方法(fngf)介紹(參見幫助文件)。第27頁/共57頁第二十七頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p IWorkspaceFactory IWorkspaceFactory:主要負(fù)責(zé)創(chuàng)建和打開工作區(qū)的函數(shù)以及提供(tgng)該WorkspaceFactor

22、y的相關(guān)信息。第28頁/共57頁第二十八頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p IFeatureWorkspace IFeatureWorkspace:主要負(fù)責(zé)創(chuàng)建和打開(d ki)各種類型的數(shù)據(jù)源或者其他工作區(qū)的對(duì)象。第29頁/共57頁第二十九頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p IFeatureLayer IFeatureLayer:主要負(fù)責(zé)控制要素(yo s)層的通用方面。第30頁/共57頁第三十頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p IFeatureClass IFeatureClass:主要(zhyo)負(fù)

23、責(zé)獲得或設(shè)置要素類的屬性。 第31頁/共57頁第三十一頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件p IFeatureClass IFeatureClass:主要負(fù)責(zé)獲得或設(shè)置(shzh)要素類的屬性。 第32頁/共57頁第三十二頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件 private void 打開矢量ToolStripMenuItem_Click(object sender, EventArgs e) IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; I

24、FeatureClass pFeatureClass; IFeatureLayer pFeatureLayer; pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(E:上課資料(zlio)測繪08-GIS開發(fā)map, 0) as IFeatureWorkspace; pFeatureClass = pFeatureWorkspace.OpenFeatureClass(區(qū)域); pFeatureLayer = new Featur

25、eLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; pFeatureLayer.Name = 區(qū)域; axMapControl1.AddLayer(pFeatureLayer); axMapControl1.Refresh(); using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.DataSourcesFile;第33頁/共57頁第三十三頁,共58頁。1.加載圖層數(shù)據(jù)(shj)ShapeFile文件 private void 打開(d k

26、i)矢量ToolStripMenuItem_Click(object sender, EventArgs e) IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureClass pFeatureClass; IFeatureLayer pFeatureLayer; pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(E:上

27、課資料測繪08-GIS開發(fā)map, 0) as IFeatureWorkspace; pFeatureClass = pFeatureWorkspace.OpenFeatureClass(區(qū)域); pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; IDataset pDataset = pFeatureClass as IDataset; pFeatureLayer.Name = pDataset.Name; ILayer pLayer = pFeatureLayer as

28、ILayer; axMapControl1.Map.AddLayer(pLayer); axMapControl1.Refresh(); 思考:如何利用對(duì)話框打開思考:如何利用對(duì)話框打開ShapeFileShapeFile文件?文件?第34頁/共57頁第三十四頁,共58頁。1.加載圖層數(shù)據(jù)(shj)柵格數(shù)據(jù)(shj)柵格數(shù)據(jù)是GIS中重要的數(shù)據(jù)源之一。有很強(qiáng)的表達(dá)能力,可以描述許多目標(biāo)和事物(shw),如高程和植被等。一般的柵格數(shù)據(jù)有衛(wèi)星圖像、掃描的地圖、照片等。由于存儲(chǔ)格式的不同,柵格數(shù)據(jù)可以分為bmp、tif、jpg、grid等,這些都可為ArcGIS所支持。實(shí)際應(yīng)用中,可將它們作為圖層添

29、加到工程中,然后進(jìn)一步利用和分析。第35頁/共57頁第三十五頁,共58頁。1.加載圖層數(shù)據(jù)(shj)柵格數(shù)據(jù)(shj)p IRasterLayer IRasterLayer :創(chuàng)建(chungjin)和修改柵格數(shù)據(jù)層。第36頁/共57頁第三十六頁,共58頁。1.加載圖層數(shù)據(jù)(shj)柵格數(shù)據(jù)(shj)p IRasterLayer第37頁/共57頁第三十七頁,共58頁。1.加載圖層數(shù)據(jù)(shj)柵格數(shù)據(jù)(shj) using ESRI.ArcGIS.DataSourcesRaster;CreateFromFilePathprivate void opengrid_Click(object sen

30、der, EventArgs e) IRasterLayer pRasterLayer = new RasterLayerClass(); pRasterLayer.CreateFromFilePath(E:上課(shng k)資料測繪08-GIS開發(fā)mapSDJT.JPG); axMapControl1.AddLayer(pRasterLayer); axMapControl1.Refresh(); 第38頁/共57頁第三十八頁,共58頁。1.加載圖層數(shù)據(jù)(shj)柵格數(shù)據(jù)(shj)CreateFromDatasetprivate void opengrid_Click(object sen

31、der, EventArgs e) string filePath = E:上課資料測繪(chu)08-GIS開發(fā)map; string fileNam = SDJT.JPG; IWorkspaceFactory workspcFac = new RasterWorkspaceFactory(); IRasterWorkspace rasterWorkspc; IRasterDataset rasterDatst = new RasterDatasetClass(); IRasterLayer rasterLay = new RasterLayerClass(); rasterWorkspc

32、= workspcFac.OpenFromFile(filePath, 0) as IRasterWorkspace; rasterDatst = rasterWorkspc.OpenRasterDataset(fileNam); rasterLay.CreateFromDataset(rasterDatst); axMapControl1.AddLayer(rasterLay); axMapControl1.Refresh(); 第39頁/共57頁第三十九頁,共58頁。1.加載圖層數(shù)據(jù)(shj)第40頁/共57頁第四十頁,共58頁。1.加載圖層數(shù)據(jù)(shj)第41頁/共57頁第四十一頁,共5

33、8頁。2.地圖顯示(xinsh)基本控制 放大、縮小、漫游和全圖顯示(xinsh)是GIS、電子地圖、圖形處理、圖像處理等軟件必備的基本功能,是用戶通過有限的屏幕窗口去認(rèn)識(shí)無限的地理空間必須具備的工具,是進(jìn)行這類軟件開發(fā)時(shí)必須開發(fā)的功能。 進(jìn)行放大和縮小操作時(shí),主要用到IEnvelope接口,而漫游和全圖顯示(xinsh)主要用IMapControl2接口。第42頁/共57頁第四十二頁,共58頁。2.地圖顯示(xinsh)基本控制 IEnvelope接口:Envelopes是包含特定(tdng)元素在內(nèi)的矩形框。所有的幾何對(duì)象通過X的最大最小值和Y的最大最小值都有一個(gè)Envelope。p IE

34、nvelope第43頁/共57頁第四十三頁,共58頁。2.地圖顯示(xinsh)基本控制p IEnvelope第44頁/共57頁第四十四頁,共58頁。2.地圖顯示(xinsh)基本控制p IEnvelope第45頁/共57頁第四十五頁,共58頁。2.地圖顯示基本(jbn)控制p IMapControl2 IMapctrol2接口:主要(zhyo)負(fù)責(zé)控制Mapcontrol控件。第46頁/共57頁第四十六頁,共58頁。2.地圖(dt)顯示基本控制p IMapControl2第47頁/共57頁第四十七頁,共58頁。2.地圖顯示基本(jbn)控制p 放大(fngd)(Zoom In)using E

35、SRI.ArcGIS.Geometry;private void ZoomIn_Click(object sender, EventArgs e) IEnvelope pEnvelope; pEnvelope = axMapControl1.Extent; pEnvelope.Expand(0.5, 0.5,true); axMapControl1.Extent = pEnvelope; axMapControl1.Refresh(); 第48頁/共57頁第四十八頁,共58頁。2.地圖顯示基本(jbn)控制p 放大(fngd)(Zoom In)using ESRI.ArcGIS.Geometr

36、y; using ESRI.ArcGIS.Controls; private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) axMapControl1.MousePointer = esriControlsMousePointer.esriPointerZoomIn; IEnvelope IEnvTrc; IEnvTrc = axMapControl1.TrackRectangle(); axMapControl1.Extent

37、= IEnvTrc; 第49頁/共57頁第四十九頁,共58頁。2.地圖(dt)顯示基本控制p 放大(fngd)(Zoom In)using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls; private INewEnvelopeFeedback m_feedBack; private IPoint m_point; private Boolean m_isMouseDown; private IActiveView m_pActiveView;

38、private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) m_pActiveView = axMapControl1.ActiveView; m_point = m_pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(e.x, e.y); axMapControl1.MousePointer = esriControlsMousePointer.esriPoin

39、terPageZoomOut; m_isMouseDown = true; 第50頁/共57頁第五十頁,共58頁。2.地圖顯示基本(jbn)控制p 放大(fngd)(Zoom In) private void axMapControl1_OnMouseMove(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseMoveEvent e) if (!m_isMouseDown) return; if (m_feedBack = null) m_feedBack = new NewEnvelopeFeedbackClass()

40、; m_feedBack.Display = m_pActiveView.ScreenDisplay; m_feedBack.Start(m_point); m_feedBack.MoveTo(m_pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(e.x, e.y); 第51頁/共57頁第五十一頁,共58頁。2.地圖(dt)顯示基本控制 private void axMapControl1_OnMouseUp(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMo

41、useUpEvent e) if (!m_isMouseDown) return; IEnvelope pEnvelope; if (m_feedBack = null) pEnvelope = m_pActiveView.Extent; pEnvelope.Expand(2, 2, true); pEnvelope.CenterAt(m_point); else pEnvelope = m_feedBack.Stop(); m_pActiveView.Extent = pEnvelope; m_pActiveView.Refresh(); m_feedBack = null; m_isMouseDown = false; 第52頁/共57頁第五十二頁,共58頁

溫馨提示

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

評(píng)論

0/150

提交評(píng)論