ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:376.02KB ,
资源ID:3938113      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3938113.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《地理信息系统设计与开发》实验指导书.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《地理信息系统设计与开发》实验指导书.docx

1、地理信息系统设计与开发实验指导书地理信息系统设计与开发实验指导书(黑体,小3号)课程编号:地理信息系统设计与开发课程英文名称:Design and Development of Geographic Information System学时数: 36 学分数:3适用层次和专业: 地理信息系统及测绘工程本科 实验一 安装MO和VB1.实验目的 学习安装MO学习安装VB6熟悉VB6开发环境2.实验内容安装VB6.0安装MO2.3或更高版本在VB窗体中添加MO组件为MO组件添加数据china.shp实验二 视图缩放和全图操作1.实验目的 掌握MO控件的一般使用方式2.实验内容添加地图控件,通过设置地

2、图控件的属性添加数据在窗体上增加一个按钮,双击这个按钮,在代码窗口中输入以下代码Private Sub Command1_Click() Set Map1.Extent = Map1.FullExtentEnd Sub双击地图控件为他的事件 MouseDown 增加以下代码Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then Set Map1.Extent = Map1.TrackRectangle End I

3、fEnd Sub进一步操作PopUp Menu(右键菜单)使用菜单编辑器生成一个右键菜单Popup1,为Popup1建立以下几个子菜单项“显示全图”“放大”“缩小”编写代码实现“显示全图”的功能;Private Sub pop1Full_Click() Map1.Extent = Map1.FullExtentEnd Sub修改Mouse事件中的代码,显示右键菜单Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = vbLeftButton The

4、n Set Map1.Extent = Map1.TrackRectangleElse: Button = vbRightButton PopupMenu pop1 End IfEnd Sub进一步操作:工具栏ToolBar在窗体上放置ImageList控件设置ImageList1的属性,增加图片 ZoomIn.bmp;ZoomOut.bmp;Pan.bmp;Globe.bmp(这些文件在光盘目录BitMaps下)在窗体上放置ToolBar控件设置ToolBar1的属性,将ToolBar1的图像列表设置为ImageList1;增加按钮ZoomIn,ZoomOut,Pan,设置样式为2-tbrB

5、uttonGroup,并设置相应的显示图片;增加第4个按钮设置样式为4-tbrPlaceholder;增加第5个按钮btnFullExtent设置图片为Globe.bmp注意:VB控件库 Microsoft Windows Common Controls 6.0 中包含ToolBar 和ImageList控件实验三 动态加载图层1.实验目的 掌握CommandDialog 组件添加图层的方法练习VB中添加按钮的一般方法2.实验内容导入CommandDialog 组件,这一组件在对象库Microsoft Common Dialog Control 6.0 中。添加Map控件,Conmon Dia

6、log 控件,并将其名称改为cDlg1,添加一个按钮.程序代码: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 cDlg1.Filter = ESRI Shape文件(*.shp)|*.shp cDlg1.CancelError = True On Error GoTo eTrap cDlg1.ShowOpen If

7、 Len(cDlg1.FileName) = 0 Then Exit Sub DC.Database = CurDir If Not DC.Connect Then Exit Sub FName = Left(cDlg1.FileTitle, Len(cDlg1.FileTitle) - 4) Set gds = DC.FindGeoDataset(FName) If gds Is Nothing Then Exit Sub Set shpLayer.GeoDataset = gds Map1.Layers.Add shpLayer Exit Sub eTrap: If Err.Number

8、cdlCancel Then MsgBox Err.Description, vbCritical End If End Sub实验四 调整图层顺序1.实验目的 掌握在MO当中如何调整图层顺序2.实验内容置顶当前图层Private Sub lstLayers_DblClick() Dim lyr As MapObjects2.MapLayer If lstLayers.ListIndex -1 Then Map1.Layers.MoveToTop lstLayers.ListIndex Map1.Refresh lstLayers.Clear For Each lyr In Map1.Laye

9、rs lstLayers.AddItem lyr.Name Next lyr End IfEnd Sub上移图层Private Sub Command2_Click() Dim i As Integer Dim lyr As MapObjects2.MapLayer If lstLayers.ListIndex -1 And lstLayers.ListIndex 0 Then i = lstLayers.ListIndex - 1 Map1.Layers.MoveTo lstLayers.ListIndex, i Map1.Refresh lstLayers.Clear For Each l

10、yr In Map1.Layers lstLayers.AddItem lyr.Name Next lyr lstLayers.Selected(i) = True End IfEnd Sub下移图层Private Sub Command4_Click() Dim i As Integer Dim lyr As MapObjects2.MapLayer If lstLayers.ListIndex -1 And lstLayers.ListIndex lstLayers.ListCount - 1 Then i = lstLayers.ListIndex + 1 Map1.Layers.Mov

11、eTo lstLayers.ListIndex, i Map1.Refresh lstLayers.Clear For Each lyr In Map1.Layers lstLayers.AddItem lyr.Name Next lyr lstLayers.Selected(i) = True End IfEnd Sub实验五 取消图层调入和动态跟踪层1.实验目的 掌握取消图层调入掌握动态跟踪层的使用2.实验内容取消图层调入,运行时设置Map.CancelAction = moCancelMap添加一个command1按钮。增加事件Command1_Click()。添加在运行时添加图层的代码

12、添加事件Map1_DrawingCanceled()Private Sub Map1_DrawingCanceled() MsgBox the layer(or layers) has been canceled!End SubTrackingLayer动态跟踪Dim pt As New MapObjects2.Point convert the point to map coordinatesSet pt = Map1.ToMapPoint(X, Y) add a new eventMap1.TrackingLayer.AddEvent pt, symIndex实验六 缓冲区1.实验目的 掌

13、握使用缓冲区功能2.实验内容Private Sub Form_Load()Map1.TrackingLayer.SymbolCount = 2With Map1.TrackingLayer.Symbol(0).SymbolType = moPointSymbol.Style = moCircleMarker.Color = moRed.Size = 3End WithWith Map1.TrackingLayer.Symbol(1).SymbolType = moFillSymbol.Style = moGrayFill.Color = moRed.OutlineColor = moRedEn

14、d WithEnd SubPrivate Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE)Dim sym1 As New MapObjects2.Symbolsym1.SymbolType = moFillSymbolsym1.Style = moTransparentFillsym1.OutlineColor = moBlackMap1.DrawShape Map1.FullExtent, sym1End Sub查看各顶点的M属性 地图数据:ynroadsm.shpDim line As New MapObject

15、s2.lineDim recs As New MapObjects2.RecordsetDim recCount As IntegerDim i As IntegerList1.ClearSet recs = Map1.Layers(0).RecordsrecCount = recs.CountFor i = 0 To recCount - 1List1.AddItem 线段: & i + 1Set line = recs(Shape).ValueoutputMeasures lineNext iPrivate Sub outputMeasures(aLine As MapObjects2.l

16、ine)Dim itemCount As IntegerDim partLine As MapObjects2.PointsDim i As IntegerFor Each partLine In aLine.PartsFor i = 0 To partLine.Count - 1 Step 1No of vertices in totalitemCount = itemCount + 1With partLine.Item(i)List1.AddItem Item: & i & , & itemCount & Chr(9) & X: & Format(.X,#.00) & Chr(9) &

17、Y: & Format(.Y, #.00) & Chr(9) & M: & Format(.Measure,#.00)End WithNext iNext partLineEnd Sub实验七 控件坐标和地图坐标1.实验目的 掌握控件坐标和地图坐标转化的一般方法学习地图距离获取的一般方法2.实验内容1. 控件坐标与地图坐标添加数据Chinaprj.shpPrivate Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Form1.RefreshForm1.CurrentX = 0Fo

18、rm1.CurrentY = 200Print 当前鼠标坐标 X: & X & vbTab & vbTab & Y: & YPrintDim pt As MapObjects2.PointSet pt = Map1.ToMapPoint(X, Y)Print 当前地图坐标 X: & pt.X & vbTab & Y: & pt.YPrintPrint Map1.Height & vbTab & vbTab & Map1.WidthEnd Sub2. 控件距离与地图距离Private Sub Map1_MouseDown(Button As Integer, Shift As Integer,

19、X As Single, Y As Single)Dim mypl As New MapObjects2.LineSet mypl = Map1.TrackLineMap1.TrackingLayer.AddEvent mypl, 0Print 地图距离为: & mypl.LengthPrint 控件距离为: & Map1.FromMapDistance(mypl.Length)End Sub3. Projection China.shpPrivate Sub Command1_Click()Dim mycs As New MapObjects2.GeoCoordSysmycs.Type =

20、moGeoCS_Beijing1954Dim mypjcs As New MapObjects2.ProjCoordSysmypjcs.Type = moProjCS_Beijing1954GK_13Set Map1.Layers(0).CoordinateSystem = mycsSet Map1.CoordinateSystem = mypjcsEnd SubPrivate Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim mypt As MapObjects2.Poin

21、tSet mypt = Map1.ToMapPoint(X, Y)Text1.Text = X is & mypt.X & Y is & mypt.YEnd Sub实验八 地图投影1.实验目的 掌握如何判断地图是否投影掌握如何更改地图投影2.实验内容判断有没有投影添加数据 china 和 chinaprj 调整顺序观察结果Private Sub Command1_Click()Dim mycorsys As ObjectDim mymaplayer As MapObjects2.MapLayerSet mymaplayer = Map1.Layers(0)Set mycorsys = myma

22、player.CoordinateSystemIf mycorsys Is Nothing Then MsgBox 图形为地理坐标系 或 地图参数未设置Else If mycorsys.IsProjected Then MsgBox 图形为投影坐标系 Print mymaplayer.CoordinateSystem.Type Print mymaplayer.CoordinateSystem.Name Print mymaplayer.CoordinateSystem.ReturnDescription Text1.Text = mymaplayer.CoordinateSystem.Ret

23、urnDescription End IfEnd IfEnd Sub2更改投影 添加数据 country 和 world30Private Sub Command1_Click()Dim CSMap As New MapObjects2.ProjCoordSysCSMap.Type = moProjCS_World_WinkelIDim CSMapLayer As New MapObjects2.GeoCoordSysCSMapLayer.Type = moGeoCS_WGS1984Set Map1.Layers(0).CoordinateSystem = CSMapLayerSet Map1

24、.Layers(1).CoordinateSystem = CSMapLayerSet Map1.CoordinateSystem = CSMapMap1.Extent = Map1.FullExtentEnd SubPrivate Sub Command2_Click()Dim CSMap As New MapObjects2.GeoCoordSysCSMap.Type = moGeoCS_WGS1984Set Map1.CoordinateSystem = CSMapMap1.Extent = Map1.FullExtentEnd SubPrivate Sub Command3_Click

25、()Dim CSMap As New MapObjects2.ProjCoordSysCSMap.Type = moProjCS_World_RobinsonSet Map1.CoordinateSystem = CSMapMap1.Extent = Map1.FullExtentEnd Sub3.投影转换,坐标转换第一个图添加数据 country world30 china 第二个图添加数据chinaDim myGT As New MapObjects2.GeoTransformationDim gcsBJ54 As New MapObjects2.GeoCoordSysDim myprjB

26、J54 As New MapObjects2.ProjCoordSysDim gcsWGS84 As New MapObjects2.GeoCoordSysDim myPt1, myPt2 As New MapObjects2.PointPrivate Sub Form_Load()begin some pre declear myprjBJ54.Type = moProjCS_Beijing1954GK_17 gcsBJ54.Type = moGeoCS_Beijing1954 gcsWGS84.Type = moGeoCS_WGS1984 Set myGT.FromGeoCoordSys

27、= gcsBJ54 Set myGT.ToGeoCoordSys = gcsWGS84 myGT.Direction = moDirection_Forward myGT.Name = BJ54_To_WGS1984 myGT.Method = moMethod_PositionVector myGT.SetParameter moParm_DeltaX, 24 myGT.SetParameter moParm_DeltaY, -123 myGT.SetParameter moParm_DeltaZ, -94 myGT.SetParameter moParm_RotationX, -0.02

28、myGT.SetParameter moParm_RotationY, -0.25 myGT.SetParameter moParm_RotationZ, -0.13 myGT.SetParameter moParm_DeltaScale, 1begin map1Set Map1.Layers(0).CoordinateSystem = gcsWGS84Set Map1.Layers(1).CoordinateSystem = gcsWGS84Set Map1.Layers(2).CoordinateSystem = gcsWGS84If Map1.CoordinateSystem Is No

29、thing Then Set Map1.CoordinateSystem = gcsWGS84End Ifbegin map2Set Map2.Layers(0).CoordinateSystem = gcsWGS84If Map2.CoordinateSystem Is Nothing Then Set Map2.CoordinateSystem = myprjBJ54End IfEnd SubPrivate Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Set myPt1 =

30、 Map1.ToMapPoint(X, Y)Map1.TrackingLayer.AddEvent myPt1, 0Set myPt2 = Map2.CoordinateSystem.Transform(Map1.CoordinateSystem, myPt1, , myGT)Map2.TrackingLayer.AddEvent myPt2, 0Print myPt1.X & ; myPt1.YPrint myPt2.X & ; myPt2.YEnd Sub实验九 文件状态的查询1.实验目的 掌握文件状态的查询的一般方法2.实验内容1. 显示文件状态、复习动态加载数据加载数据world30,拷贝china到程序运行目录Private Sub Command1_Click()Dim myrcs As New MapObjects2.RecordsetDim mygeods As New MapObjects2.GeoDatasetDim mydc As New MapObjects2.DataConnectionmydc.Databas

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1