鹰眼图

更新时间:2022-10-29 15:06:26 阅读: 评论:0

实现思路

VB下鹰眼图实现的思路是这样的:在某一Form上放两个MapX控件:Map1(主图),Map2(鹰眼图);然后在鹰眼图上创建一个图层,在该图层上添加一个矩形Feature,该矩形的大小随着主图边界而变化。

详细代码

具体实现参考下面详细代码。

Dim m_Layer As Layer ’鹰眼图上临时图层

Dim m_Fea As MapXLib.Feature ’鹰眼图上反映主地图窗口位置的Feature

Private Sub Form_Load()

Set m_Layer = Map2.Layers.CreateLayer(Rectlayer) ’在Map2创建图层

End Sub

’根据map1的Bounds在Map2上绘制矩形Feature

Private Sub Map1_MapViewChanged()

Dim tempFea As MapXLib.Feature ’声明Feature变量

Dim tempPnts As MapXLib.Points ’声明Points变量

Dim tempStyle As MapXLib.Style ’声明Style变量

’矩形边框还没有创建时

If m_Layer.AllFeatures.Count = 0 Then

’设置矩形边框样式

Set tempStyle = New MapXLib.Style ’创建Style对象

tempStyle.RegionPattern = miPatternNoFill ’设置Style的矩形内部填充样式

tempStyle.RegionBorderColor = 255 ’设置Style的矩形边框颜色

tempStyle.RegionBorderWidth = 2 ’设置Style的矩形边框宽度

'在图层创建大小为Map1的边界的Rectangle对象

Set tempFea = Map2.FeatureFactory.CreateRegion(Map1.Bounds, tempStyle)

Set m_Fea = m_Layer.AddFeature(tempFea) ’添加矩形边框

El ’否则,根据Map1的视野变化改变矩形边框的大小和位置

With m_Fea.Parts.Item(1)

.RemoveAll ’除去已有的矩形边框的顶点

’添加大小和位置已变化的矩形边框的四个顶点

.AddXY Map1.Bounds.XMin, Map1.Bounds.YMin

.AddXY Map1.Bounds.XMax, Map1.Bounds.YMin

.AddXY Map1.Bounds.XMax, Map1.Bounds.YMax

.AddXY Map1.Bounds.XMin, Map1.Bounds.YMax

End With

m_Fea.Update ’更新显示

End If

End Sub

’鹰眼图上鼠标单击用来导航主图,其方法是把鼠标处的坐标设置为主图的中心

Private Sub Map2_MouDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim MapX As Double ’定义x坐标变量

Dim MapY As Double ’定义y坐标变量

’把屏幕坐标转换为地图坐标

Map2.ConvertCoord X, Y, MapX, MapY, miScreenToMap

’设置主图的中心x坐标和y坐标

Map1.CenterX = MapX

Map1.CenterY = MapY

End Sub

本文发布于:2022-10-29 15:06:26,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/83/406628.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:鹰眼图
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图