鹰眼图

王朝百科·作者佚名  2010-04-02  
宽屏版  字体: |||超大  

什么是鹰眼图

鹰眼图是GIS中一个基本的功能,鹰眼图又名缩略图,顾名思义,在鹰眼图上可以象从空中俯视一样查看地图框中所显示的地图在整个图中的位置.Windows下的可视化开发工具现在大家接触得最多的就是VC,VB,下面将详细介绍在VC与VB环境下鹰眼图的具体实现,从这也可以看出利用MapX开发GIS应用程序的方法和技巧。

VB下鹰眼图的实现

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) ’添加矩形边框

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

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有