鹰眼的实现最常用的是添加一个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事件

相关文章:

  • 2022-12-23
  • 1970-01-01
  • 2022-12-23
  • 2022-12-23
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2021-11-25
猜你喜欢
  • 2022-12-23
  • 2021-12-11
  • 2021-04-19
  • 2021-10-19
  • 2022-01-17
  • 2022-12-23
  • 2021-11-28
相关资源
相似解决方案