鹰眼图
GIS的功能
鹰眼图是GIS中一个基本的功能,鹰眼图,顾名思义,在鹰眼图上可以像从空中俯视一样查看地图框中所显示的地图在整个图中的位置.Windows下的可视化开发工具大家接触得最多的就是,下面将详细介绍在VC与VB环境下鹰眼图的具体实现,从这也可以看出利用MapX开发GIS应用程序的方法和技巧。
实现思路
VB下鹰眼图实现的思路是这样的:在某一Form上放两个MapX控件:Map1(主图),Map2(鹰眼图);然后在鹰眼图上创建一个图层,在该图层上添加一个矩形Feature,该矩形的大小随着主图边界而变化。
详细代码
具体实现参考下面详细代码。
Dim m_Layer As Layer ’鹰眼图上临时图层
Dim m_Fea As MapXLib.Feature ’鹰眼图上反映主地图窗口位置的Feature
Private Sub Form_Load( )
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) ’添加矩形边框
Else ’否则,根据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_MouseDown(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
参考资料
最新修订时间:2023-10-02 20:00
目录
概述
实现思路
详细代码
参考资料