ArcGISEngine二次开发——提高篇_机械制造-CAD.pdf
《ArcGISEngine二次开发——提高篇_机械制造-CAD.pdf》由会员分享,可在线阅读,更多相关《ArcGISEngine二次开发——提高篇_机械制造-CAD.pdf(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.ArcGIS Engine 二次开发 提高篇.1 缩略图(鹰眼)鹰眼功能是 GIS 的主要功能之一,当地图围很大时,它可以很好的为用户指明当前地图的围。在本小节中我们将学习如何制作这种鹰眼。1.1 添加控件 新建一个 C#.Net 项目,项目名称为 OverView,将 Form1 的名字设置为 MainForm,并添加 ToolbarControl、两个 MapControl 和 LicenceControl 等四个控件。布局如下图所示。左边的 axMapControl1 用于地图数据显示和操作,右边 axMapControl2 用于鹰眼显示。图 1 界面布局 在 ToolbarContr
2、ol 加载添加数据按钮和地图浏览的功能按钮,如下图所示,并将ToolbarControl 的伙伴控件设为 axMapControl1。图 2 添加按钮 试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张张择端法国画家塞尚在西方被尊奉为后印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦
3、远明四家中以工笔重彩闻名的画家是沈周文征明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互.1.2 代码添加及解释 鹰眼用来显示主窗体当前视图围在全景视图中的位置,在 ArcMap 中使用一个线框在鹰眼视图中标识。当主视图中的视图围改变时,鹰眼中的线框随之改变,当拖动鹰眼视图中的红线框时,主视图中的视图围也随之改变。下 面 开 始 实 现 鹰 眼 功 能,添 加 using ESRI.ArcGIS.Carto、using ESRI.ArcGIS.Geometry、using ESRI.ArcGIS.Display 三个引用
4、。首先在 axMapControl1 中视图围改变时鹰眼窗体要做出对应的响应,即绘制线框并显示,在 OnExtentUpdated 事件中添加代码如下:private void axMapControl1_OnExtentUpdated(object sender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvent e)/创建鹰眼中线框 IEnvelope pEnv=(IEnvelope)e.newEnvelope;IRectangleElement pRectangleEle=new RectangleElementCla
5、ss();IElement pEle=pRectangleEle as IElement;pEle.Geometry=pEnv;/设置线框的边线对象,包括颜色和线宽 IRgbColor pColor=new RgbColorClass();pColor.Red=255;pColor.Green=0;pColor.Blue=0;pColor.Transparency=255;/产生一个线符号对象 ILineSymbol pOutline=new SimpleLineSymbolClass();pOutline.Width=2;pOutline.Color=pColor;/设置颜色属性 pColo
6、r.Red=255;pColor.Green=0;pColor.Blue=0;pColor.Transparency=0;/设置线框填充符号的属性 IFillSymbol pFillSymbol=new SimpleFillSymbolClass();pFillSymbol.Color=pColor;pFillSymbol.Outline=pOutline;IFillShapeElement pFillShapeEle=pEle as IFillShapeElement;试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电
7、影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张张择端法国画家塞尚在西方被尊奉为后印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦远明四家中以工笔重彩闻名的画家是沈周文征明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互.pFillShapeEle.Symbol=pFillSymbol;/得到鹰眼视图中的图形元素容器 IGraphi
8、csContainer pGra=axMapControl2.Map as IGraphicsContainer;IActiveView pAv=pGra as IActiveView;/在绘制前,清除 axMapControl2 中的任何图形元素 pGra.DeleteAllElements();/鹰眼视图中添加线框 pGra.AddElement(IElement)pFillShapeEle,0);/刷新鹰眼 pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);当 鼠 标 点 击 鹰 眼 窗 体 时,主 窗 体
9、Extent 随 之 改 变。在 axMapControl2 的OnMouseDown 事件中添加代码如下:private void axMapControl2_OnMouseDown(object sender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)if(this.axMapControl2.Map.LayerCount!=0)/按下鼠标左键移动矩形框 if(e.button=1)IPoint pPoint=new PointClass();pPoint.PutCoords(e.mapX,e.mapY);IEnv
10、elope pEnvelope=this.axMapControl1.Extent;pEnvelope.CenterAt(pPoint);this.axMapControl1.Extent=pEnvelope;this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);/按下鼠标右键绘制矩形框 else if(e.button=2)IEnvelope pEnvelop=this.axMapControl2.TrackRectangle();this.axMapContro
11、l1.Extent=pEnvelop;this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张张择端法国画家塞尚在西方被尊奉为后印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属
12、于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦远明四家中以工笔重彩闻名的画家是沈周文征明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互.当 鼠 标 在 鹰 眼 窗 体 移 动 时,主 窗 体 Extent 随 之 改 变。在 axMapControl2 的OnMouseMove 事件中添加代码如下:private void axMapControl2_OnMouseMove(object sender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseM
13、oveEvent e)/如果不是左键按下就直接返回 if(e.button!=1)return;IPoint pPoint=new PointClass();pPoint.PutCoords(e.mapX,e.mapY);this.axMapControl1.CenterAt(pPoint);this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);下面代码用于实现 axMapControl2 与 axMapControl1 的数据的同步更新,获取主视 图 中 视 图
14、围 最 大 的 图 层 作 为 鹰 眼 中 的 视 图。这 个 更 新 由 两 部 分 组 成,一 个 是 对axMapControl1 添 加 地 图 文 档(mxd 文 件)的 响 应,通 过 axMapControl1 的OnMapReplace 事件实现,一个是对 axMapControl1 添加单个图层的响应,通过axMapControl1 的 OnFullExtentUpdated 事件实现。我们获取主视图中的视图围最大的图层写成一个独立的函数,方便调用。private ILayer GetOverviewLayer(IMap map)/获取主视图的第一个图层 ILayer pLa
15、yer=map.get_Layer(0);/遍历其他图层,并比较视图围的宽度,返回宽度最大的图层 ILayer pTempLayer=null;for(int i=1;i map.LayerCount;i+)pTempLayer=map.get_Layer(i);if(pLayer.AreaOfInterest.Width pTempLayer.AreaOfInterest.Width)pLayer=pTempLayer;return pLayer;然后在 axMapControl1 的 OnMapReplaced 事件中调用。private void axMapControl1_OnMapR
16、eplaced(object sender,IMapControlEvents2_OnMapReplacedEvent e)试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张张择端法国画家塞尚在西方被尊奉为后印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦远明四家中以工笔重彩闻名的画
17、家是沈周文征明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互./获取鹰眼图层 this.axMapControl2.AddLayer(this.GetOverviewLayer(this.axMapControl1.Map);/设置 MapControl 显示围至数据的全局围 this.axMapControl2.Extent=this.axMapControl1.FullExtent;/刷新鹰眼控件地图 this.axMapControl2.Refresh();在 axMapControl1 的 OnFullExten
18、tUpdated 添加代码,用于实现在主视图添加图层时,实现对鹰眼视图的更新。代码如下:private void axMapControl1_OnFullExtentUpdated(object sender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnFullExtentUpdatedEvent e)/获取鹰眼图层 this.axMapControl2.AddLayer(this.GetOverviewLayer(this.axMapControl1.Map);/设置 MapControl 显示围至数据的全局围 this.axMapControl2.E
19、xtent=this.axMapControl1.FullExtent;/刷新鹰眼控件地图 this.axMapControl2.Refresh();本例的示例数据无特别要求,使用前面章节实例数据即可。运行程序,添加地图数据,可以在主视图进行相关操作,鹰眼视图同步响应,在鹰眼视图可以移动红线框可以同步更新主视图的视图围,在鹰眼视图单击右键拉框可以重新绘制红线框,效果如下:图 3 鹰眼效果 试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张
20、张择端法国画家塞尚在西方被尊奉为后印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦远明四家中以工笔重彩闻名的画家是沈周文征明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互.1.3 MyGIS 中添加鹰眼 在上一讲中的最后一节,我们创建了一个简单的 GIS 系统 MyGIS,这里,我们讲鹰眼功能嵌入到我们的系统中。在这里我们对实现的思路做一个介绍,请您自己动手完善My
21、GIS。首先需要修改一下 MyGIS 窗体的控件布局,我们讲鹰眼视图放到图层管理器的下方,需要在控件容器 SpliterContainer1 的 Panel1 中添加一个水平分隔的 SpliterContainer,然后将图层管理器空间 TOCControl 和鹰眼视图 MapControl 分别置于上下的容器中,并将其属性 Dock 分别设为 Fill。另外,在此种窗体布局情况下,直接在 TOCControl 控件属性中设置伙伴控件无效,如图所示。我们需要在 MainForm 的 Load 事件中为 TOCControl 设置伙伴控件为axMapControl1。添加代码如下:private
22、 void Form1_Load(object sender,EventArgs e)/设置 axTOCControl1 的伙伴控件 this.axTOCControl1.SetBuddyControl(axMapControl1.Object);图 4 TOCControl 控件属性中设置伙伴控件 然后依次添加本例中的代码,即可完成,运行效果如下图所示:试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张张择端法国画家塞尚在西方被尊奉为后
23、印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦远明四家中以工笔重彩闻名的画家是沈周文征明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互.图 5 MyGIS 中鹰眼的运行效果 1.4 小结 在本小节中,我们实现了鹰眼功能并讲鹰眼加入了 MyGIS,这部分的重点是鹰眼视图和主视图之间的事件交互。推荐您仔细结合例子程序查看代码,如果需要获得进一步的信息,请查看帮助系统。
24、如果您对这一小节的容比较熟悉了,就可以开始学习本章最后一小节的容了。在下一小节中,我们将尝试添加缓冲区分析功能。试题美术课程标准按教学活动分为四个学习领域美术的社会功能主要体现在功能功能和美术媒材是构成美术作品的功能如颜料纸张粘土画布电影胶片录像带木材和塑胶常见的焦点透视有透视和透视两种色彩千变万化但归纳起来主要 子张张择端法国画家塞尚在西方被尊奉为后印象画派之父现代绘画之父印象派之父当代绘画之父巴黎圣母院的建筑形式属于罗马式建筑拜占庭式建筑哥特式建筑拉丁式建筑十七世纪荷兰的绘画艺术属于学习必备欢迎下载封建文化市 外师造化中得心源是提出的王洽张璪王维张彦远明四家中以工笔重彩闻名的画家是沈周文征
25、明唐寅仇英中国画流民图的作者是齐白石潘天寿蒋兆和徐悲鸿齐白石的中国画蛙声十里出山泉描写的是青蛙牛蛙蝌蚪树蛙下面哪组颜色是互.2 缓冲区分析 缓冲区分析指为了识别某一地理实体或空间物体对其周围地物影响度而在其周围建立的具有一定宽度的区域,以确定哪些实体落在了被影响的区域围之。缓冲区分析与缓冲区查询不同,缓冲区查询是不破坏原有空间目标的关系,只是检索到该缓冲区围涉及到的目标。而缓冲区分析是根据设定的距离条件对一类地物建立缓冲区多边形,存储到一个新的图层中。然后再将新的图层与需要进行缓冲区分析的图层进行叠置分析,得到所需要的结果。因此,缓冲区分析实际上进行了两步的操作,第一步是建立缓冲区图层,第二步
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ArcGISEngine 二次开发 提高 机械制造 CAD
限制150内