arcgis engine二次开发——提高篇

arcgis engine二次开发——提高篇

ID:10913085

大小:1.48 MB

页数:77页

时间:2018-07-08

arcgis engine二次开发——提高篇_第1页
arcgis engine二次开发——提高篇_第2页
arcgis engine二次开发——提高篇_第3页
arcgis engine二次开发——提高篇_第4页
arcgis engine二次开发——提高篇_第5页
资源描述:

《arcgis engine二次开发——提高篇》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ArcGISEngine二次开发——提高篇11缩略图(鹰眼)鹰眼功能是GIS的主要功能之一,当地图范围很大时,它可以很好的为用户指明当前地图的范围。在本小节中我们将学习如何制作这种鹰眼。1.1添加控件新建一个C#.Net项目,项目名称为OverView,将Form1的名字设置为MainForm,并添加ToolbarControl、两个MapControl和LicenceControl等四个控件。布局如下图所示。左边的axMapControl1用于地图数据显示和操作,右边axMapControl2用于鹰眼显示。图

2、1界面布局在ToolbarControl加载添加数据按钮和地图浏览的功能按钮,如下图所示,并将ToolbarControl的伙伴控件设为axMapControl1。图2添加按钮1.1代码添加及解释鹰眼用来显示主窗体当前视图范围在全景视图中的位置,在ArcMap中使用一个线框在鹰眼视图中标识。当主视图中的视图范围改变时,鹰眼中的线框随之改变,当拖动鹰眼视图中的红线框时,主视图中的视图范围也随之改变。下面开始实现鹰眼功能,添加usingESRI.ArcGIS.Carto、usingESRI.ArcGIS.Geome

3、try、usingESRI.ArcGIS.Display三个引用。首先在axMapControl1中视图范围改变时鹰眼窗体要做出对应的响应,即绘制线框并显示,在OnExtentUpdated事件中添加代码如下:privatevoidaxMapControl1_OnExtentUpdated(objectsender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvente){//创建鹰眼中线框IEnvelopepEnv=(IEnvelope)e.

4、newEnvelope;IRectangleElementpRectangleEle=newRectangleElementClass();IElementpEle=pRectangleEleasIElement;pEle.Geometry=pEnv;//设置线框的边线对象,包括颜色和线宽IRgbColorpColor=newRgbColorClass();pColor.Red=255;pColor.Green=0;pColor.Blue=0;pColor.Transparency=255;//产生一个线符号对

5、象ILineSymbolpOutline=newSimpleLineSymbolClass();pOutline.Width=2;pOutline.Color=pColor;//设置颜色属性pColor.Red=255;pColor.Green=0;pColor.Blue=0;pColor.Transparency=0;//设置线框填充符号的属性IFillSymbolpFillSymbol=newSimpleFillSymbolClass();pFillSymbol.Color=pColor;pFillSymb

6、ol.Outline=pOutline;IFillShapeElementpFillShapeEle=pEleasIFillShapeElement;pFillShapeEle.Symbol=pFillSymbol;//得到鹰眼视图中的图形元素容器IGraphicsContainerpGra=axMapControl2.MapasIGraphicsContainer;IActiveViewpAv=pGraasIActiveView;//在绘制前,清除axMapControl2中的任何图形元素pGra.Delet

7、eAllElements();//鹰眼视图中添加线框pGra.AddElement((IElement)pFillShapeEle,0);//刷新鹰眼pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);}当鼠标点击鹰眼窗体时,主窗体Extent随之改变。在axMapControl2的OnMouseDown事件中添加代码如下:privatevoidaxMapControl2_OnMouseDown(objectsender,ESRI.A

8、rcGIS.Controls.IMapControlEvents2_OnMouseDownEvente){if(this.axMapControl2.Map.LayerCount!=0){//按下鼠标左键移动矩形框if(e.button==1){IPointpPoint=newPointClass();pPoint.PutCoords(e.mapX,e.mapY);IEnvelopep

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。