发布时间 : 星期四 文章GIS二次开发程序设计更新完毕开始阅读
'第二步,定义一个新的MO对象组的MapLayer对象 Dim shpLayer As New MapObjects2.MapLayer Dim filename As String
'''第三步,设置DataConnection对象的方法Connection连接到指定的存放数据的地方
''dConn.Database = \ '''第三步,利用DataConnection对象的方法Connect进行数据连接 ''dConn.Connect
'''第四步,将MapLayer对象的GeoDataset属性设置为DataConnection对象的FindGeoDataset方法(用Shape 文件名作参数)的返回值。
''Set shpLayer.GeoDataset = dConn.FindGeoDataset(\
'''第五步,用地图控件Layers对象的方法Add向地图控件中添加Shape图层 ''Map1.Layers.Add shpLayer '设置对话框过滤器
Form1.CommonDialog1.Filter = \文件(*.shp)|*.shp\ '对话框显示为打开类型的对话框 Form1.CommonDialog1.ShowOpen
'如果打开文件名的长度为0,则终止这个过程
If Len(Form1.CommonDialog1.filename) = 0 Then Exit Sub '设置DataConnection对象的方法Connection连接到当前目录 dConn.Database = CurDir 'App.path If Not dConn.Connect Then Exit Sub 'MsgBox dConn.Connect '得到从对话框返回的文件名 filename = Left(Form1.CommonDialog1.FileTitle, Len(Form1.CommonDialog1.FileTitle) - 4) '设置图层的数据集
'Set shpLayer.GeoDataset = dConn.FindGeoDataset(FileName) Set shpLayer.GeoDataset = dConn.FindGeoDataset(filename) '增加新图层
Form1.Map1.Layers.Add shpLayer End Sub
得到结果如图:
四、实验总结
4.1、实验中遇到的困难
实验中有时操作不当时会加载不了图层。还有在菜单编辑中,由于没在窗体加入对话框,在程序运行的时候就出错。
4.2、处理方法和技巧
仔细寻找出错的原因,并解决问题。程序不能出错,一旦出错就得不到结果。我们还可以采取一些我们喜欢的而方法,对图层进行设置。比如我们可以进行一些操作,是所加载的图层颜色唯一。
4.3、经验体会和收获
经过这次实习,我学会了不少东西,比如熟悉Map Object中commondialog
控件的调用方法。同时也掌握了在Visual Basic中利用Map Object二次开发软件实现command控件、菜单、类模块和toolbar加载Shape图层的操作。
通过对各种打开程序代码的学习,我基本能够自己读懂字里行间的意思,并能对程序代码进行操作,实现打开图层的功能。
在实验中会遇到一些意象不到的困难,有时候甚至根本不知道哪里出错,只能反反复复查看,试运行,知道找出错误并修正它,使工作量大大增加,只有肯多花时间在上面,才能很好地完成任务。
实验三 放大、缩小、平移和全视图
一、实验目的和要求
学会在菜单、toolbar中添加相应的程序代码实现所加载图层的放大、缩小、平移以及全视图操作。
二、实验内容
1、用程序代码实现图层的放大操作功能。 2、用程序代码实现图层的缩小操作功能。 3、用程序代码实现图层的平移操作功能。 4、用程序代码实现图层的全视图操作功能。
三、实验步骤
1、实现图层的放大功能代码:
Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If i = 1 Then
Set Map1.Extent = Map1.TrackRectangle End If End Sub
Private Sub fangda_Click() bZoomOrPan = True '标志放大状态 i = 1
'设置鼠标指针
Map1.MousePointer = moZoomIn End Sub
结果如图所示: