你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
利用VB实现MO地图层控制(二)
 

2.添加图层

新建一个工程。在窗体Form中添加一个CommandButton控件、一个CommonDialog控件、一个Mapobject控件。设置CommonDialogFilter属性为“ESRI shpfile(*.shp)|*.shp”,切换到代码窗口中,添加如下代码实现在地图控件中添加shape格式的地图数据。

实现代码如下:

Private Sub Command1_Click()

Dim shpLayer As New MapObjects2.MapLayer

Dim dc As New MapObjects2.DataConnection

Dim gds As MapObjects2.GeoDataset

Dim fName As String

设置捕捉并处理用户按下“取消”按钮

CommonDialog1.CancelError = True

On Error GoTo errorTrap

CommonDialog1.ShowOpen

If Len(CommonDialog1.FileName) = 0 Then Exit Sub

   

fName = Left(CommonDialog1.FileTitle, Len(CommonDialog1.FileTitle) - 4)

设置数据库连接

dc.Database = CurDir

设置数据集

Set gds = dc.FindGeoDataset(f)

Set shpLayer.GeoDataset = gds

在地图控件中添加新图层

Map1.layers.Add shpLayer

    

errorTrap:

If Err.Number <> 32755 Then

MsgBox “添加” + f Name+ “图层”, vbOKOnly

End If

End Sub

3.控制图层显示

(1) 放大、缩小、移动和全图显示

利用地图控件的Extent属性可以控制地图的放大、缩小和漫游功能。Extent表示当前地图显示的范围,它是一个矩形(Rectangle)类型的属性。

利用地图控件的FullExtentExtent属性可以显示整个地图。FullExtent属性表示所有图层的总的坐标值范围,即在地图窗口中显示所有图层的完整地图数据。TrackRectangle方法可用来在地图上拖出一个矩形框来进行放大地图。

新建一个工程,在Form中添加一个toolbar控件、一个Mapobject控件、一个ImageList控件,并设置好toolbar控件和ImageList控件以及它们之间的关联。

实现代码如下:

Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If b_click = “zoomIn” Then

在图上拖出一个矩形框来放大地图

Map1.Extent = Map1.TrackRectangle

ElseIf b_click = “zoomOut” Then

在图上点击时以2倍的比例缩小地图

Set r = Map1.Extent

r.ScaleRectangle 2

Map1.Extent = r

ElseIf b_click = “pan” Then

移动地图

Map1.Pan

End If

End Sub

 

Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

b_click = Button.Key

if b_click = “full” Then

全图显示

Map1.Extent = Map1.FullExtent

End Sub


3 地图图层缩放和漫游实现

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089