axMapControl1是主地图 axMapControl2是鹰眼地图

 private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)
{
//获取地图当前的范围(包络线)
IEnvelope pEnvelope = (IEnvelope)e.newEnvelope;
//将鹰眼地图设置为地理容器,再设置为活动视图
IGraphicsContainer pGraphicsContainer = axMapControl2.Map as IGraphicsContainer;
IActiveView pActiveView = pGraphicsContainer as IActiveView;
//清除鹰眼地图中的任何图形元素
pGraphicsContainer.DeleteAllElements();
//设置矩形范围
IRectangleElement pRectangeEle = new RectangleElementClass();
IElement pElement = pRectangeEle as IElement;
pElement.Geometry = pEnvelope; //创建鹰眼图中的红线框
IRgbColor pColor = new RgbColor();
pColor.Red = ;
pColor.Blue = ;
pColor.Green = ;
pColor.Transparency = ; //创建线符号对象
ILineSymbol pOutline = new SimpleLineSymbolClass();
pOutline.Width = ;
pOutline.Color = pColor; //设置颜色属性
pColor = new RgbColorClass();
pColor.Red = ;
pColor.Blue = ;
pColor.Green = ;
pColor.Transparency = ; //设置填充符号
IFillSymbol pFillSymbol = new SimpleFillSymbolClass();
pFillSymbol.Color = pColor;
pFillSymbol.Outline = pOutline; IFillShapeElement pFillShapeEle = pElement as IFillShapeElement;
pFillShapeEle.Symbol = pFillSymbol; pGraphicsContainer.AddElement((IElement)pFillShapeEle, );
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
} private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)
{
if (axMapControl1.LayerCount > )
{
axMapControl2.Map = new MapClass();
for (int i = ; i <= axMapControl1.LayerCount - ; i++)
{
axMapControl2.Map.AddLayer(axMapControl1.Map.get_Layer(i));
}
axMapControl2.Extent = axMapControl1.Extent;
axMapControl2.Refresh();
}
//axMapControl2.LoadMxFile(axMapControl1.DocumentFilename);
//axMapControl2.Refresh();
//axMapControl2.Extent = axMapControl2.FullExtent;
} private void axMapControl2_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
{
if (e.button == )
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
axMapControl1.CenterAt(pPoint);
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}
} private void axMapControl2_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
{
if (axMapControl2.Map.LayerCount > )
{
if (e.button == )
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
axMapControl1.CenterAt(pPoint);
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}
else
{
IEnvelope pEnv = axMapControl2.TrackRectangle();
axMapControl1.Extent = pEnv;
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
} }
}

ArcGIS添加鹰眼的更多相关文章

  1. Arcgis Engine - 鹰眼(减少闪烁)

    网上看到的代码,都是一个模样,经过不断调试,无意中效果就可以了.主要是在"鼠标拖动的时候",网上的代码的鹰眼效果,感觉坑爹死了,闪烁超级严重.主要原因是鼠标拖动的时候,进行时时更新 ...

  2. arcgis engine - 鹰眼在栅格图无法显示.

    一般,如果是矢量图,则不会出现这样的情况,鹰眼图无法显示,这时,只要在主控件的OnMapReplaced中显示指定鹰眼控制的空间参照,即可,如:在map_Big_OnMapReplaced方法中,添加 ...

  3. ArcGIS 添加 MarkerSymbol 弹出“图形符号无法序列化为 JSON”错误

    今天在做一个demo,向自定义图层中添加MarkerSymbol的时候,弹出“图形符号无法序列化为 JSON”错误,之前都没有出现过这个问题,我们首先来看一看我是怎样去添加图层,然后向图层中添加Gra ...

  4. arcgis 添加经纬度坐标点

    ArcGIS 10.2导入X.Y坐标(经度.纬度),生成Shapefile点数据   参考博客很完整 基站-纬度-经度 1---- 2----X 经度  Y 纬度  Z高程(没有) 3---一开始只定 ...

  5. C#+arcengine10.0+SP5实现鹰眼(加载的是mdb数据库中的数据)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

    原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...

  7. 【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注

    原文:[百度地图API]建立全国银行位置查询系统(三)--如何在地图上添加银行标注 <摘要>你将在第三章中学会以下知识: 如何在地图上添加带银行logo的标注?(你也可以换成商场logo, ...

  8. 【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件

    原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨. ...

  9. 关于JAVA通过REST接口对arcGis Server数据进行增删改查

    一: 添加要素 public void create(BoxVo boxVo) throws Exception { // 创建HTTP客户端 CloseableHttpClient httpclie ...

随机推荐

  1. Android 控件 -------- AutoCompleteTextView 动态匹配内容,例如 百度搜索提示下拉列表功能

    AutoCompleteTextView 支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据.两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开 ...

  2. ASP.NET 导出Excel文档

    System.IO.TextWriter writer = new System.IO.StreamWriter(Server.MapPath("/provprice.xls"), ...

  3. Android零碎知识点总结

    1 简单的跨进程通信可以用Messenger类,不用AIDL. 2 当一个Service没有action时,它默认是exported="false"的,其它进程用它的包名和类名构造 ...

  4. MVC 数据列表显示插件大全

    Jgrid 官网示例: http://www.trirand.net/demo/aspnet/mvc/jqgrid/ Code Project示例: http://www.codeproject.co ...

  5. iOS之本地推送(前台模式与后台模式)

    #import "AppDelegate.h" #import "GlobalDefine.h" @interface AppDelegate () @end ...

  6. size_t和size_type类型

    size_t一般用来表示一种计数,比如有多少东西被拷贝等.例如:sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小. 它的意义大致是“适于计量内存中可容纳的数据 ...

  7. poj 3959 Alignment of Code <vector>“字符串”

    Description You are working in a team that writes Incredibly Customizable Programming Codewriter (IC ...

  8. hibernate操作数据库总结(转)

    一.query方式 1.hibernate使用原生态的sql语句执行数据库查询 有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就猜测因为不是原生态的sql语句,数据库不支持,因此情愿选 ...

  9. 12个非常有用的JavaScript小技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  10. C 语言---漂亮的宏定义

    写好C 语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等.下面列举一些成熟软件中常用得宏定义. 1.防止一个头文件被重复包含 #ifndef COMDEF_H #de ...