ArcEngine双向联动鹰眼图源码
来源:互联网 发布:算法豆瓣 编辑:程序博客网 时间:2024/05/16 15:47
#region 鹰眼图
IElement pOverViewElement = null;//鹰眼图Element
IEnvelope pCurrentEnveop = null;
bool IsMove = false;
private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)
{
if (pOverViewElement != null)
{
upDataOverViewMap();
}
}
private IElement InitOverViewMap()
{
if (axMapControl1.DocumentFilename == null) { Tools.ShowInfoWindow("当前未加载地图",1); return null; }
axMapControl2.LoadMxFile(axMapControl1.DocumentFilename);
axMapControl2.Extent = axMapControl2.FullExtent;
axMapControl2.OnMouseMove += new IMapControlEvents2_Ax_OnMouseMoveEventHandler(axMapControl2_OnMouseMove);
axMapControl2.OnMouseDown += new IMapControlEvents2_Ax_OnMouseDownEventHandler(axMapControl2_OnMouseDown);
axMapControl2.OnMouseUp += new IMapControlEvents2_Ax_OnMouseUpEventHandler(axMapControl2_OnMouseUp);
pCurrentEnveop = axMapControl1.Extent;
IEnvelope pEnv = axMapControl1.Extent;
pEnv.Expand(3, 3, true);
axMapControl2.Extent = pEnv;
IRgbColor pColor = new RgbColorClass();
IRectangleElement pPolygonElement = new RectangleElementClass();
ISimpleLineSymbol pLineSym = new SimpleLineSymbolClass();
pColor.Red = 255;
pColor.Green = 0;
pColor.Blue = 0;
pLineSym.Color = pColor;
pLineSym.Width = 2;
ISimpleFillSymbol pFillSym = new SimpleFillSymbolClass();
pColor.Transparency = 0;
pFillSym.Color = pColor;
pFillSym.Outline = pLineSym;
((IFillShapeElement)pPolygonElement).Symbol = pFillSym;
((IElement)pPolygonElement).Geometry = axMapControl1.Extent;
axMapControl2.ActiveView.GraphicsContainer.DeleteAllElements();
axMapControl2.ActiveView.GraphicsContainer.AddElement((IElement)pPolygonElement, 0);
axMapControl2.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
return (IElement)pPolygonElement;
}
void axMapControl2_OnMouseUp(object sender, IMapControlEvents2_OnMouseUpEvent e)
{
IsMove = false;
upDataMainMap();
}
void axMapControl2_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
{
IsMove = true;
}
void axMapControl2_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
{
if (IsMove)
{
IPoint cPt = new PointClass();
cPt.X = e.mapX; cPt.Y = e.mapY;
pCurrentEnveop.CenterAt(cPt);
pOverViewElement.Geometry = pCurrentEnveop;
axMapControl2.ActiveView.GraphicsContainer.UpdateElement(pOverViewElement);
axMapControl2.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
}
private void upDataOverViewMap()
{
pCurrentEnveop = axMapControl1.Extent;
IEnvelope pEnv = axMapControl1.Extent;
pEnv.Expand(3, 3, true);
axMapControl2.Extent = pEnv;
pOverViewElement.Geometry = axMapControl1.Extent;
axMapControl2.ActiveView.GraphicsContainer.UpdateElement(pOverViewElement);
axMapControl2.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
private void upDataMainMap()
{
axMapControl1.Extent = pCurrentEnveop;
}
private void picture_CloseOverMap_Click(object sender, EventArgs e)
{
OverViewWindow.Visible = false;
axMapControl2.ActiveView.GraphicsContainer.DeleteAllElements();
pOverViewElement = null;//鹰眼图Element
pCurrentEnveop = null;
}
private void btn_OverViewMap_Click(object sender, EventArgs e)
{
pOverViewElement = InitOverViewMap();
if (pOverViewElement == null) return;
OverViewWindow.Visible = true;
}
#endregion
- ArcEngine双向联动鹰眼图源码
- ArcEngine双向联动鹰眼图源码 .(转帖)
- ArcEngine 鹰眼功能C#实现
- 一起学习ArcEngine(8)鹰眼
- 一起学习ArcEngine(8)鹰眼
- 【AE二次开发】实现鹰眼的联动
- arcengine 两地图进行联动
- C#,arcengine制作鹰眼全过程(带注释)
- 做鹰眼图
- 鹰眼图的实现
- 鹰眼图实现
- GlobeControl 做鹰眼图
- arcgis javascript 鹰眼图
- ArcEngine 图例C#源码:
- 鹰眼
- 鹰眼
- 实现鹰眼图C#+AE
- mapxtreme 鹰眼图的开发
- Weblogic应用程序部署指南
- Python建立Web文件服务
- UBOOT添加命令的执行流程
- u-boot命令介绍及烧写程序实例
- 关于group by 的一个SQL题目
- ArcEngine双向联动鹰眼图源码
- centos安装ntp服务器
- Linux系统下C++开发工具
- Unix 学习笔记
- kjava,jad描述顺序
- vc++ 在程序中运行另一个程序的方法
- 转贴 MAF Step by Step
- Mysql 日志文件介绍
- Android中的线程模型