课程设计方案vb和MapObjects的二次开发_第1页
课程设计方案vb和MapObjects的二次开发_第2页
课程设计方案vb和MapObjects的二次开发_第3页
课程设计方案vb和MapObjects的二次开发_第4页
课程设计方案vb和MapObjects的二次开发_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称:地理信息系统设计名称:MapObiects的二次开发院 系):*专业班级:*姓名:*学号:*指导教师:* 年 * 月 * 日、设计目的:1)、实习类型:课程设计;2)、了解VB的软硬件环境、Map Objects数据类型;3) 、初步掌握该软件的基本操作技能;4)、能够熟练的操作VB6.0软件,并能应用该软件简单的与 M0进行开发 5)、掌握产品的输出设计。6)、培养利用 GIS 方法解决实际问题的能力。二、设计主要仪器设备,器材,药品,软件等1)软件准备: VB6.02)硬件准备:PC机500M内存,128M显卡最低)3)资料准备:MapObjects控件、USA等SH

2、P文件三、设计原理和内容:1)设计题目:Map Objects的二次开发2)具体要求:应用 VB 软件与 MO 控件进行结合,实现 MO 的二次开发。 也就是 Map 控件,还包括 45个ActiveX 自动对象。可用于符合 IT 行业标准的 Windows 编程环境。MapObjects主要功能:显示一张包含多个图层的地图 (道路,河流,边界 。 放大,缩小,漫游。创建新的几何图形,如点,线,圆,多边形。为图层添加注释。 识别地图上被选中的要素 点,线,面)。 可以通过线,矩形,多边形,圆来选择要素可以选取距某参照物一定距离范围内的要素。可以通过SQL语句来选择要素。对选择的要素进行统计。查

3、询与更新被选择的要素的属性数据制作专题地图。根据字段的值标注图层要素。显示从航片或卫星图片上获取的图像。动态显示实时或时间系列数据。通过输入地址在地图上定位。将数据投影到不同的坐标系下MapObjects对象模型 具体见附录)数据通道对象组地图显示对象组几何图形对象组地址匹配对象组地理坐标对象组四、设计步骤 Map Display Objects) Address Match Objects) |*.shpCommo nDialog1.I ni tDir = App.Path + dataCommon Dialog1.ShowOpe n0刁幵3n j|1/ KJIX5Ei兀4X13+ I1K:

4、|事密自话Tf闻:SJ lb w2、添加菜单栏工具一一菜单编辑器帮助上下文IE 00 : |0| QIqxi)取消厂复选 I*有效协调位置:0 一 Hone可见加厂显示窗口列裘哪)*書*|下一个an| teA析音I照驕良HMH 具二询二一 二工二杳二二3、Toolbar 禾口 ImageListIf Toolbarl.Butto ns(1.Value = 1 ThenMapl.MousePo in ter = moZoo mlnElseIf Toolbar1.Butto ns(2.Value = 1 The n Map 1.MousePoi nter = moZoomOutElseIf Too

5、lbar1.Butto ns(3.Value = 1 The n Map1.MousePo in ter = moPa nElseIf Toolbar1.Button s(4.Value = 1 The n Map1.MousePo in ter = moArrowSet Map1.Exte nt = Map1.FullExte ntElseIf Toolbar1.Butto ns(5.Value = 1 The nMap1.MousePo in ter = moIde ntifyElseIf Toolbar1.Butto ns(6.Value = 1 The nMap1.MousePo in

6、 ter = moArrowForm5.ShowToolbar1.Butt on s(6.Value = tbrU npressedElseIf Toolbar1.Butto ns(7.Value = 1 The n Map1.MousePo in ter = moArrowToolbar1.Butt on s(7.Value = tbrU npressedElseIf Toolbar1.Butto ns(8.Value = 1 The n Map1.MousePo in ter = moCrossreflashElseIf Toolbar1.Buttons(9.Value = 1 ThenM

7、ap1.MousePointer = moCross reflashElseIf Toolbar1.Buttons(10.Value = 1 ThenMap1.MousePointer = moCross reflashElseIf Toolbar1.Buttons(11.Value = 1 ThenMap1.MousePointer = moCross reflashElseIf Toolbar1.Buttons(12.Value = 1 ThenMap1.MousePointer = moCrossReflashIf Button = 1 ThenIf Toolbar1.Buttons(1

8、.Value = 1 ThenSet Map1.Extent = Map1.TrackRectangleElseIf Toolbar1.Buttons(2.Value = 1 ThenSet r = Map1.Extent r.ScaleRectangle 1.5 Map1.Extent = rElseIf Toolbar1.Buttons(3.Value = 1 ThenMap1.PanElseIf Toolbar1.Buttons(5.Value = 1 ThenForm2.TreeView1.LineStyle = tvwRootLinesForm2.TreeView1.Nodes.Cl

9、earSet l = Map1.Layers(Me.Combo1.textSet p = Map1.ToMapPoint(x, ySet partNode = Form2.TreeView1.Nodes.Add(, , r, Me.Combo1.texttheTol = Map1.ToMapDistance(Searchtolpixels * Screen.TwipsPerPixelX * 3For Each l In Map1.LayersIf l.Visible = True And l.LayerType = moMapLayer ThenSet Rect = l.SearchByDis

10、tance(p, theTol, If Not Rect.EOF ThenForm2.ListView1.ListItems.ClearFor Each Fld In Rect.FieldsSet newItem = Form2.ListView1.ListItems.Add newItem.text = F newItem.SubItems(1 = Fld.ValueAsString Form2.Text1.text = 当前坐标: ( & p.x & , & p.y & End IfSet partNode = Form2.TreeView1.Nodes.Add(r, tvw

11、Child, , Rect.Fields(NAME .ValueAsStri ngEnd IfNextpartNode.E nsureVisibleForm2.ShowElseIf Toolbar1.Butto ns(8.Value = 1 ThenDim Shp As Map Objects2 .P olyg onSet PL = Map1.TrackLi neMap1.Track in gLayer.Refresh TrueElseIf Toolbar1.Butto ns(9.Value = 1 The nSet Poly = Map1.TrackPolygo nMap1.Track in

12、 gLayer.Refresh TrueElseIf Toolbar1.Butt on s(10.Value = 1 Then Set PL = Map1.TrackLi neSet BLi ne = PL.Buffer(Combo2.textMap1.Track in gLayer.Refresh TrueElseIf Toolbar1.Butto ns(11.Value = 1 Then Set Poly = Map1.TrackPolygo nSet BLi ne = Poly.Buffer(Combo2.textMap1.Track in gLayer.Refresh TrueElse

13、If Toolbar1.Butt on s(12.Value = 1 ThenSet p = Map 1.ToMapPoint(x, yPts.Add pSet BLi ne = Pts.Buffer(Combo2.textMap1.Track in gLayer.Refresh TrueEnd IfElseIf Button = vbRightButton ThenPopupMe nu viewEnd If例如:鹰眼放大属性r f mo2 Tsuissit b p & jullix。自圍:L2/l/J SJ 4.1 ib4、图层控制本设计的图层可以实现上下移动、显示和隐藏图层等功能Priva

14、te Sub Form_Load(lege ndl.setMapSource Map1End SubPrivate Sub Map1_AfterLayerDraw(ByVal In dex As In teger, ByVai can celed As Boolea n. ByVal hDC As stdole.OLE HANDLElege ndl.LoadLege nd TrueEnd SubPrivate Sub lege nd1_AfterSetLayerVisible(l ndex As In teger, isVisible As Boolea n MapI.RefreshEnd S

15、ub尿云商道路FRJ z两云甫道路PRJ X&云南县城PRJ顾云南县界PRJ 5、显示比例尺、动态坐标和时间等Private Sub refreshScale(ScaleBar1.M apExte nt.MaxX = Map1.Exte nt.RightScaleBar1.M apExte nt.Mi nX = Map1.Exte nt.LeftScaleBar1.M apExte nt.MaxY = Map1.Exte nt.BottomScaleBar1.M apExte nt.Mi nY = Map1.Exte nt.TopScaleBar1.PageExte nt.Mi nX = Ma

16、p1.Left / Scree n.TwipsPerPixeIXScaleBar1.PageExte nt.Mi nY = Map1.Top / Scree n.TwipsPerPixelYScaleBar1.PageExte nt.MaxX = (Map1.Left + Map1.Width / Scree n.TwipsPerPixeIXScaleBar1.PageExte nt.Mi nY = (Map1.Top + Map1.Height / Scree n.TwipsPerPixelYScaleBar1.RefreshEnd SubPrivate Sub Timer1_Timer(M

17、e.StatusBar1.Panels.ltem(5.text =当前时间:& Now(T = E3S4TB6.CS5S9333 当荷IB尊僦圣二 0当肃时日 9 2UJ2/J/3 23:19:12End Sub口r匚XtfYWM -57KJTI1M 200 五、设计总结分析设计阶段是在 VB中创建应用程序的最重要的部分。首先需要为应用程序设计一用户界 面,然后对每个功能模块编写代码。但设计代码的结构是一项很复杂的工作,不易掌握。 构造应用程序的方法不同,可能会造成应用程序的性能以及代码的可维护性、可使用性不 同。在此次课程设计中,我们针对MOC次开发过程中遇到的问题进行了如下总结:一)实验难

18、点1. 由于对 VB 的应用环境不大熟悉,各个控件的使用方法不甚了解,所以在开始构建工程 模块时很是吃力。2. VB 编程是实验中的一大难点,每个功能都要通过编写代码来实现,对加载的每个功能 函数需要不断的修改和调试。二)注意事项1. 在构建不同的窗体模块时,要注意模块之间的链接;2. 每个模块有多个过程,每个过程是一个可执行的代码片段,要划分清晰每个子过程、函 数过程或是属性过程,以便程序的调试、检查;3. 在很多情况中存在多个对象共享的重复过程,这样可创建一个共享的子过程,以方便调 用,来增加程序的可读性和可维护性;4. 应用每一个变量前需要进行定义,以保证程序可读;5. 在调试程序时可通过设置断点来进行追踪分析;6. 在工具栏设计中, Toolbar 里按钮的索引号要与 ImageList 的图像编号链接一致,按钮 样式要设为“ tbrButtonGroup ”,否则无法对地图实现各项操作;7. 在实现“打开”功能前,需加入 CommonDialog 控件,否则无法实现;心得体会:在这次上机实习中,我们使用VB和 M0中的 Text, L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论