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