C#+ArcGIS Engine二次开发之鹰眼功能实现的代码
开发系统的时候,一定也会考虑鹰眼的实现,鹰眼对整个研究区域有一个整体的轮廓。所以,鹰眼对一个系统来说还是很有必要的。但是找过网上很多代码,大同小异,可最后出现的成果并不是我想要的,终于,get到了心仪的鹰眼,很简单的代码分享给大家。
下图为最终成果图,加载了一个简单的数据试验一下。
分析:主图更新地图或改变显示范围,鸟瞰图随之发生变化;点击鸟瞰图,主图移动到相应的范围进行显示,鸟瞰图上面有红色矩形框。
下面是代码部分。
首先拖入两个MapControl控件,主窗体控件是axMapControl1,鹰眼窗体控件是axMapControl2。
第一步,在axMapControl1属性事件中找到OnExtentUpdated,双击进入代码编写。
private void axMapControl1_OnExtentUpdated(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvent e){IEnvelope pEnvelope = e.newEnvelope as IEnvelope ;IGraphicsContainer pContainer = axMapControl2.ActiveView.GraphicsContainer;pContainer.DeleteAllElements();IRectangleElement pRect = new RectangleElement() as IRectangleElement;IElement pElement = pRect as IElement;pElement.Geometry = pEnvelope;IFillShapeElement shapeElement = pElement as IFillShapeElement;//鹰眼窗体里的红色线框设置IFillSymbol fill = new SimpleFillSymbol();IRgbColor color = new RgbColor() as IRgbColor ;color.Transparency = 0;fill.Color = color ;ILineSymbol line=new SimpleLineSymbol() ;color.Red = 255;color.Blue = 0;color.Green = 0;color.Transparency = 255;line.Color = color;line.Width = 2;fill.Outline = line;shapeElement.Symbol = fill;pContainer.AddElement(pElement, 0);axMapControl2.ActiveView.Refresh();//刷新}
第二步,在axMapControl1属性事件中找到OnMapReplaced事件,双击进入代码编写。
private void axMapControl1_OnMapReplaced(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMapReplacedEvent e){for (int i = 0; i < axMapControl1.Map.LayerCount ; i++){axMapControl2.AddLayer(axMapControl1.Map.get_Layer(i));}axMapControl2.Extent = axMapControl1.Extent;axMapControl2.ActiveView.Refresh();}
第三步,在axMapControl2属性事件中找到OnMouseDown事件,双击进入代码编写。
private void axMapControl2_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e){if (e.button ==1){ IPoint point=new ESRI .ArcGIS .Geometry .Point ();point.PutCoords(e.mapX, e.mapY);axMapControl1.CenterAt(point);axMapControl1.ActiveView.Refresh();}}
注:转载请注明出处
C#+ArcGIS Engine二次开发之鹰眼功能实现的代码相关推荐
- 【ArcGIS Engine二次开发】入门基础(2):ArcGIS开发方式(VBA、DLL、Add-in、Engine)对比
文章目录 2.1 使用VBA进行桌面软件开发 2.1.1 VBA开发方式 2.1.1 VBA代码的安全性 2.2 使用DLL进行桌面软件开发 2.2.1 DLL开发方式 2.2.2 DLL功能的应用部 ...
- 利用Arcgis Engine 二次开发的使用和总结
Arcgis Engine 初体验 先放一张第一版系统的图,由于公司机密不能提供源码,但是各个小功能提供源码,为需要的同仁提供些许帮助. 接下来进入正题,将逐一展示利用Arcgis Engine开发的 ...
- 【转载】利用ArcGIS Engine 二次开发的使用和总结
文章目录 ArcGIS Engine 初体验 一.较完全编辑功能GIS程序 二.字段搜索要素和空间搜索要素GIS程序 三.图层重叠搜索GIS程序 四.要素合并.裁剪及检测要素重叠GIS程序 五.自定义 ...
- 【ArcGIS Engine二次开发】入门基础(1):ArcGIS Engine简介及开发环境搭建
文章目录 ArcGIS Engine概述 ArcGIS Engine与ArcObjects的关系 ArcGIS Engine下载及安装 ArcGIS Engine概述 ArcGIS Engine简介 ...
- arcgis engine二次开发python-使用C#配合ArcGIS Engine进行地理信息系统开发
简单的地图读取.展示终于到暑假了...开始认真整理整理相关学习的心得体会咯~ 先把很久之前挖的关于C# 二次开发的坑给填上好了~ 这次先计划用一个月把C# ArcEngine 10.0相关开发的学习心 ...
- ArcGIS Engine二次开发
目录 1 安装环境配置 2 参考资料 3 面向对象基础 3.1 接口 3.2 类 3.3 对象 3.4 面向对象的三大特性 4 对象模型图和ArcGIS Engine开发帮助 4.1 对象模型图(OM ...
- Arcgis Engine二次开发(一)AE开发总览
参加工作两年多,打算将两年来的AE(Arcgis Engine,本系列后面统一简称AE)开发经验分享出来.打算把AE的开发做成一个系列,原因主要有两个:一个是AE开发网上资源比较少,让从事开发的码农接 ...
- 基于C#的ArcGIS Engine二次开发的一个简单测试程序
上一篇文章介绍了环境的搭建,现在我们来做出第一个小测试程序. (1)先建一个C#窗体应用程序,我将程序名称改为了ArcGIS_test2. (2)点击"工具"->" ...
- GIS二次开发实习——鹰眼功能模块的实现(鹰眼锁定不能动,红框与主地图联动)
GIS二次开发实习(一)--鹰眼功能实现 学期末为期2周的实习结束了,对实习要求所做 太湖水资源管理系统 的功能的实现一一做一个记录,今天先来鹰眼部分(细节部分这里就不说了看前面的文章(一)). 实现 ...
最新文章
- 谷歌AI发布“会动的”3D物体数据集,附带标记边界框、相机位姿、稀疏点云,网友:快给我的AR模型用上...
- 1.4 通过时间的反向传播-深度学习第五课《序列模型》-Stanford吴恩达教授
- 入门级前端 简单的网页书写
- python 实现点击右键用某个程序打开功能_工欲善其事,必先利其器(1)——Python开发环境安装与配置...
- localStorage存、取数组
- html百分比单位,视窗单位 vs 百分比单位
- 京东6月18日正式登陆港交所 港股暗盘开涨超7%
- 整理LVS架构压力测试工作
- mysql不同服务器查询_实战操作SQL Server连接查询不同服务器表数据
- android获取键值对,Android应用开发android中的键值对实例讲解
- 在win 10系统下安装VS 2015
- leaflet沿线标注_Leaflet for R包(三) 符号标记
- 一招教你表格里面给方框内打勾
- Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果
- CSS浮动+背景图片+边框+文字排版+段落设置
- 项目管理之项目成本管理
- Linux服务器下载日志到本地
- R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算accuray、准确率指标
- 一阶shelf IIR数字滤波器的设计和实现
- CSS 学习笔记 - 盒模型
热门文章
- jetson tx2 安装cuda 10.2或者cuda 9全过程
- c语言智能车跑道检测程序,基于单片机的智能循迹避障小车(附电路原理图,程序清单)...
- 安全防御之IPsec VPN篇
- nvme分区选mbr还是guid_SSD里的特例:NVME固态改MBR格式、装Win7
- 现代摩比斯对Velodyne进行战略投资并签署合作伙伴关系
- 扫雷c语言鼠标,【求教,谢谢】扫雷游戏为什么在Turbo C 2.0下运行时,鼠标不显示...
- React库 rematch -Axios
- C++Primer练习9.49:读入文件并输出最长的不露头单词
- Gremlin学习--图的汇总与分组统计计算
- 来自程序媛的大数据分享(文中有彩蛋)