开发系统的时候,一定也会考虑鹰眼的实现,鹰眼对整个研究区域有一个整体的轮廓。所以,鹰眼对一个系统来说还是很有必要的。但是找过网上很多代码,大同小异,可最后出现的成果并不是我想要的,终于,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二次开发之鹰眼功能实现的代码相关推荐

  1. 【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功能的应用部 ...

  2. 利用Arcgis Engine 二次开发的使用和总结

    Arcgis Engine 初体验 先放一张第一版系统的图,由于公司机密不能提供源码,但是各个小功能提供源码,为需要的同仁提供些许帮助. 接下来进入正题,将逐一展示利用Arcgis Engine开发的 ...

  3. 【转载】利用ArcGIS Engine 二次开发的使用和总结

    文章目录 ArcGIS Engine 初体验 一.较完全编辑功能GIS程序 二.字段搜索要素和空间搜索要素GIS程序 三.图层重叠搜索GIS程序 四.要素合并.裁剪及检测要素重叠GIS程序 五.自定义 ...

  4. 【ArcGIS Engine二次开发】入门基础(1):ArcGIS Engine简介及开发环境搭建

    文章目录 ArcGIS Engine概述 ArcGIS Engine与ArcObjects的关系 ArcGIS Engine下载及安装 ArcGIS Engine概述 ArcGIS Engine简介 ...

  5. arcgis engine二次开发python-使用C#配合ArcGIS Engine进行地理信息系统开发

    简单的地图读取.展示终于到暑假了...开始认真整理整理相关学习的心得体会咯~ 先把很久之前挖的关于C# 二次开发的坑给填上好了~ 这次先计划用一个月把C# ArcEngine 10.0相关开发的学习心 ...

  6. ArcGIS Engine二次开发

    目录 1 安装环境配置 2 参考资料 3 面向对象基础 3.1 接口 3.2 类 3.3 对象 3.4 面向对象的三大特性 4 对象模型图和ArcGIS Engine开发帮助 4.1 对象模型图(OM ...

  7. Arcgis Engine二次开发(一)AE开发总览

    参加工作两年多,打算将两年来的AE(Arcgis Engine,本系列后面统一简称AE)开发经验分享出来.打算把AE的开发做成一个系列,原因主要有两个:一个是AE开发网上资源比较少,让从事开发的码农接 ...

  8. 基于C#的ArcGIS Engine二次开发的一个简单测试程序

    上一篇文章介绍了环境的搭建,现在我们来做出第一个小测试程序. (1)先建一个C#窗体应用程序,我将程序名称改为了ArcGIS_test2. (2)点击"工具"->" ...

  9. GIS二次开发实习——鹰眼功能模块的实现(鹰眼锁定不能动,红框与主地图联动)

    GIS二次开发实习(一)--鹰眼功能实现 学期末为期2周的实习结束了,对实习要求所做 太湖水资源管理系统 的功能的实现一一做一个记录,今天先来鹰眼部分(细节部分这里就不说了看前面的文章(一)). 实现 ...

最新文章

  1. 谷歌AI发布“会动的”3D物体数据集,附带标记边界框、相机位姿、稀疏点云,网友:快给我的AR模型用上...
  2. 1.4 通过时间的反向传播-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. 入门级前端 简单的网页书写
  4. python 实现点击右键用某个程序打开功能_工欲善其事,必先利其器(1)——Python开发环境安装与配置...
  5. localStorage存、取数组
  6. html百分比单位,视窗单位 vs 百分比单位
  7. 京东6月18日正式登陆港交所 港股暗盘开涨超7%
  8. 整理LVS架构压力测试工作
  9. mysql不同服务器查询_实战操作SQL Server连接查询不同服务器表数据
  10. android获取键值对,Android应用开发android中的键值对实例讲解
  11. 在win 10系统下安装VS 2015
  12. leaflet沿线标注_Leaflet for R包(三) 符号标记
  13. 一招教你表格里面给方框内打勾
  14. Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果
  15. CSS浮动+背景图片+边框+文字排版+段落设置
  16. 项目管理之项目成本管理
  17. Linux服务器下载日志到本地
  18. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算accuray、准确率指标
  19. 一阶shelf IIR数字滤波器的设计和实现
  20. CSS 学习笔记 - 盒模型

热门文章

  1. jetson tx2 安装cuda 10.2或者cuda 9全过程
  2. c语言智能车跑道检测程序,基于单片机的智能循迹避障小车(附电路原理图,程序清单)...
  3. 安全防御之IPsec VPN篇
  4. nvme分区选mbr还是guid_SSD里的特例:NVME固态改MBR格式、装Win7
  5. 现代摩比斯对Velodyne进行战略投资并签署合作伙伴关系
  6. 扫雷c语言鼠标,【求教,谢谢】扫雷游戏为什么在Turbo C 2.0下运行时,鼠标不显示...
  7. React库 rematch -Axios
  8. C++Primer练习9.49:读入文件并输出最长的不露头单词
  9. Gremlin学习--图的汇总与分组统计计算
  10. 来自程序媛的大数据分享(文中有彩蛋)