鹰眼功能的实现(步骤,无代码)

鹰眼的实现最常用的是添加一个MapControl,显示全图,并与主地图控件进行交互。

axMapControl1 主地图控件    axMapControl2 鹰眼地图控件

1.载入地图到鹰眼控件

 地图载入到主地图控件的同时也载入鹰眼控件。在axMapControl1_OnMapReplaced事件中添加相应函数

 循环遍历axMapControl1控件中的所有图层,并添加到mapControl2中,然后设置mapControl2的Extent属性为FullExtent

2.绘制鹰眼矩形框

  主Map控件的范围更改时,即重新绘制矩形框。代码添加到axMapControl1_OnExtentUpdated事件中

3.鹰眼与主地图控件的互动

 axMapControl2_OnMouseDown事件中,

如果是鼠标左击,移动矩形框。通过事件参数设置IPoint类型的变量,通过主地图控件获取Envelope对象

 设置Envelope对象CenterAt 获取的IPoint对象。然后将设置主地图控件的Extent属性为设置好的Envelope对象,此时就触发了OnExtentUpdated事件,通过

 该事件触发,即可实现对鹰眼控件矩形框的重绘。

 如果是右击,通过axMapControl2.TrackRectangle()方法获取Envelope对象,设置主地图控件的Extent属性为该Envelope对象,触发OnExtentUpdated事件,   实现鹰眼控件矩形框的重绘。

 鹰眼控件的MouseMove事件中,

 按下鼠标左键,获取鼠标单击点的位置,生成IPoint对象。然后设置axMapControl1.CenterAt该对象。触发OnExtentUpdated事件

原文地址:https://www.cnblogs.com/DayDreamEveryWhere/p/2555424.html