




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 添加地图控件 3 1 实验目的 3 2 实验内容 3 1 MapObjects 的概念 3 MapObjects 的功能 3 MapObjects 的结构 4 MapObjects 的特点 4 MapObjects 可以满足哪些用户要求 4 2 在 Visual Basic 下使用 MapObjects 5 实验二 实现放大缩小功能 5 1 实验目的 5 2 实验内容 5 1 放大功能 在放大按钮的 click 事件中 还是 map1 的 mouse down 事件中 5 2 缩小功能 在缩小按钮的 click 事件中 还是 map1 的 mouse down 事件中 6 3 怎么区分 map1 的 mouse down 事件 是放大还是缩小 如果两个都同时放 在一个事件中 6 并添加以下函数 6 实验三 实现平移和全图功能 6 1 实验目的 6 2 实验内容 7 1 平移功能 在平移按钮的 click 事件中 还是 map1 的 mouse down 事件中 7 2 全图功能 7 3 可采用添加一个变量 flag 来区分 7 实验四 添加工具栏 8 1 实验目的 8 2 实验内容 8 实验五 设置鼠标形状 加固定 shp 文件 9 1 实验目的 9 1 鼠标形状 9 2 添加固定图层 9 2 实验内容 9 1 显示不同鼠标形状 9 2 加载固定文件夹下的 shp 文件 9 实验六 以对话框形式加 shp 图层 9 1 实验目的 9 2 实验内容 10 实验七 以对话框打开栅格格式图层 11 1 实验目的 11 2 实验内容 11 实验八 图层的显示 隐藏 添加和清除 12 1 实验目的 12 2 实验内容 12 1 清除图层 12 2 使图层隐藏 12 3 使图层可见 12 实验九 用 legend 显示和控制图层 12 1 实验目的 12 1 用 legend 显示和控制图层 熟悉 MO 的 legend 的方法和属性 12 2 用 list 控件显示和控制图层 12 2 实验内容 12 1 用 legend 显示和控制图层 12 2 用 list 控件显示和控制图层 13 实验十 实现鹰眼功能 14 1 实验目的 14 2 实验内容 14 1 在加图层的地方给 map2 加个图层 14 2 使 Map2 和 Map1 联动 map1 改变 map2 14 3 在 Map2 上画红色指示框 14 4 实现用 Map2 改变 Map1 的功能 14 实验十一 实现 identify 功能 完成空间到属性的查询 15 1 实验目的 15 2 实验内容 15 实验十二 完成属性查询 16 1 实验目的 16 2 实验内容 16 实验十三 以表达式方式完成属性到空间的查询 17 1 实验目的 17 2 实验内容 17 实验十四 窗口重新布局时 各控件的布局调整 19 1 实验目的 19 2 实验内容 19 实验十五 实现对图层颜色的控制 20 1 实验目的 20 2 实验内容 20 1 通过代码设置初始颜色 20 2 双击 legend 控件改变图层颜色 20 实验十六 添加注记功能的实现 20 1 实验目的 20 2 实验内容 20 计算机地图制图 实验指导书 课程编号 课程英文名称 Computer Aided Cartography 学时数 36 学分数 3 适用层次和专业 地理信息系统专业 实验一实验一 添加地图控件添加地图控件 1 实验目的 实验目的 熟悉 VB MapObject 编程环境 map 控件右键添加地图 显示地图运行成功 2 实验内容 实验内容 1 MapObjects 的概念的概念 MapObjects 是一组供应用开发人员使用的制图与 GIS 功能组件 它有一个叫 Map 控 件的 ActiveX 控件和一系列可编程的 ActiveX 对象组成 它们可以在标准的 Windows 编程 环境下使用 利用 MapObjects 开发人员可以在应用程序中添加制图和 GIS 功能 它不是为 最终用户而是专门为开发人员提供的 开发人员可在熟悉和喜欢的开发环境中利用 MapObjects 开发出系统开销小的制图应用 或在现有的应用中添加制图功能 MapObjects 的功能 使用 MapObjects 你可以完成以下这些功能 1 显示具有多个地图层的地图 如道路 河流和边界线等 2 放大 缩小和漫游整个地图 3 显示图形特征 Feature 如点 线 4 显示标注字符 5 通过点击识别图上特征 6 选择沿线的特征和在矩形 区域 多边形和圆内的特征 7 选择在已知特征附近规定距离内的特征 8 使用 SQL 语句查询持征 9 对选择的特征进行基本的统计 10 查询和更新选择特征的属性数据 Shape 格式 11 用特定的方法对特征进行着色处理 如 ValueMapRenderer Class BreakRenderer DotDensityRenderer 12 用字段值的字符标注特征 13 显示多种格式的栅格图像文件 14 动态显示实时或时间系列的数据 15 输出地理匹配的地理位置 MapObjects 的结构 MapObjects 是建立在微软的对象连接和嵌入 ActiveX 基础之上的 ActiveX 是当今得 到广泛支持的面向对象的软件集成技术 用户像用砖块盖房子一样利用 ActiveX 组件开发 和集成 Windows 应用程序 一个 ActiveX 控件是一个可重复使用的软件组件 ActiveX 控件可以将许多其他 ActiveX 对象包装在一个包中 这个包可以反映某些特定的功能 如统计图和多媒体等 并可以直接嵌入支持 ActiveX 的应用中 ActiveX 对象具有特征和方法 可以通过对它们的 编程来控制对象的外观 行为以及相互作用 MapObjects 是一个提供制图与 GIS 功能的 ActiveX 控件 它包含 35 个可编程的 ActiveX 对象 MapObjects 地图控件可以直接插入到许多标准开发环境的工具集中 可以 通过属性页操纵地图 这些属性页是在诸如 VisualBasic 之类的开发环境中建立的 或者通 过其他程序化相关对象来控制地图 这些对象为应用开发人员提供了有力的制图与 GIS 功能支持 因为 MapObjects 是一个 ActiveX 控件 它又可以用于大量开发框架中 包括流行的像 VB VC Delphi Microsoft Acccss FoxPro PowerBuild 等之类的程序设计环境 MapObjects 的特点 MapObjects 允许定制利用制图和 GIS 组件的应用程序 MapObjects 的特点包括 1 支持 ARC INFO 层 Coverage 2 支持 ESRI 的 Shape 文件格式 SDE 空间数据库引擎 图层 Layer 以及大量栅格格式 如 BMP TIFF 等 3 支持通过微软 ODBC 规范进行的外部数据库访问 4 把数据作为多个图层在一张图中进行显示 当然可进行图幅的变化 5 特征表示使用数理方法如数值地图 分类 个体符号以及点值图等 6 文字注记和放置 7 用一个事件跟踪层来动态显示实时数据 8 用标准 SQL 表达式进行特征选择和查询 9 通过大量搜索与框架操作特进行空间选择 10 地址匹配 地理编码 11 强大而出色的对象模型 MapObjects 可以满足哪些用户要求 任何应用开发人员都能利用 MapObjects 在应用中加入地图 一些从 MapObjects 中获 益的开发者将成为 ESRI 公司软件的用户 许多人可能只有很简单的要求 比如在应用中 加入生动的地图 另一些人则可能把 MapObjects 与其他技术一起使用建立更加复杂的系统 使用 MapObjects 建立应用程序的开发人员包括 数据出版商 软件产品开发商 纵向市场应用开发商 咨询业者 SDE 开发者 公司客户 2 在在 Visual Basic 下使用下使用 MapObjects 安装 MapObjects 之后 打开 Visual Basic 的程序开发环境 在左边的控件点击右键将 弹出控件选择柜 选择 ESRI MapObjects 后 控件中将增加一个 Map 的控件 现在可以进 行 MapObjects 编程了 增加控件 在 Form 上加一个按钮 并在按键上标注 全图 如果在应用程序中加入地图 则在 控件栏中选择 Map 控件 然后把光标移人 Form 中 拖放该图框 地图控件将成为一块空 白色区域 增加图层 在 Form 上有一个 Map 控件后 我们必须在上面显示地图特征 如道路 河流和边界 线等 右击 Map 控件 选择属性 property 添加图层运行程序 实验二实验二 实现放大缩小功能实现放大缩小功能 1 实验目的 实验目的 验证放大 缩小功能 区分放在 Button click 和 Map1 的 Mousedown 事件中的 区别 2 实验内容 实验内容 1 放大功能 在放大按钮的放大功能 在放大按钮的 click 事件中 还是事件中 还是 map1 的的 mouse down 事件中 事件中 方法方法 1 Set Map1 Extent Map1 TrackRectangle 方法方法 2 Dim r As MapObjects2 Rectangle Set r Map1 Extent r ScaleRectangle 0 5 Map1 Extent r 2 缩小功能 在缩小按钮的缩小功能 在缩小按钮的 click 事件中 还是事件中 还是 map1 的的 mouse down 事件中 事件中 Dim r As MapObjects2 Rectangle Set r Map1 Extent r ScaleRectangle 1 5 ScaleRectangle 0 5 应该就是放大了 Map1 Extent r 3 怎么区分怎么区分 map1 的的 mouse down 事件 是放大还是缩事件 是放大还是缩 小 如果两个都同时放在一个事件中 小 如果两个都同时放在一个事件中 放大和缩小都放在 map1 的 mouse down 事件中 怎么办 可采用添加一个变量 flag 来区分 添加两个按钮控件 分别标注 放大 和 缩小 在两个按钮的 click 事件中对 flag 进行赋值 flag fangda 或 suoxiao 在 Map1 的 Mousedown 事件中添加以下语句 Select Case flag Case fangda Zoomin Case suoxiao Zoomout 并添加以下函数 Sub Zoomin Dim r As MapObjects2 Rectangle Set r Map1 Extent r ScaleRectangle 0 5 Map1 Extent r End Sub Sub Zoomout Dim r As MapObjects2 Rectangle Set r Map1 Extent r ScaleRectangle 1 5 ScaleRectangle 0 5 应该就是放大了 Map1 Extent r End Sub 实验三实验三 实现平移和全图功能实现平移和全图功能 1 实验目的 实验目的 验证平移和全图功能 添加 flag 变量 在 Map1 的 Mousedown 事件中分别实现 放大 缩小 平移和全图 2 实验内容 实验内容 1 平移功能 在平移按钮的平移功能 在平移按钮的 click 事件中 还是事件中 还是 map1 的的 mouse down 事件中 事件中 Map1 Pan 2 全图功能全图功能 Map1 Extent Map1 FullExtent 3 可采用添加一个变量可采用添加一个变量 flag 来区分来区分 添加四个按钮控件 分别标注 放大 缩小 平移 和 全图 在四个按 钮的 click 事件中分别对 flag 进行赋值 flag fangda suoxiao pingyi quantu 即添加如下代码 flag fangda flag suoxiao flag pingyi flag quantu 在 Map1 的 Mousedown 事件中添加以下语句 Select Case flag Case fangda Zoomin Case suoxiao Zoomout Case pingyi Panfuc Case quantu Quantu 并添加以下函数 Sub Zoomin Dim r As MapObjects2 Rectangle Set r Map1 Extent r ScaleRectangle 0 5 Map1 Extent r End Sub Sub Zoomout Dim r As MapObjects2 Rectangle Set r Map1 Extent r ScaleRectangle 1 5 ScaleRectangle 0 5 应该就是放大了 Map1 Extent r End Sub Sub Panfuc Map1 Pan End Sub Sub Quantu Map1 Extent Map1 FullExtent End Sub 实验四实验四 添加工具栏添加工具栏 1 实验目的 实验目的 添加工具栏 分别实现放大 缩小 平移和全图 2 实验内容 实验内容 添加工具栏要使用 VB 的扩展控件 ToolBar ImageList 这两个扩展控件开始的时候并不在工具箱中 使用的时候需要使用 VB 的 工程 菜单添加 具体步骤是 选择菜单 工程 部件 添加 microsoft windows common controls 6 0 或 microsoft windows common controls 5 0 后 这样就可以在左边的工具箱中 找到 ToolBar ImageList 然后 把 ToolBar ImageList 拖放到 Form 中就可 以了 步骤如下 在窗体上放置 ImageList 控件 设置 ImageList1 的属性 增加图片 ZoomIn bmp ZoomOut bmp Pan bmp Globe bmp 在窗体上放置 ToolBar 控件 设置 ToolBar1 的属性 将 ToolBar1 的图像列表设置为 ImageList1 增加按 钮 ZoomIn ZoomOut Pan 设置样式为 2 tbrButtonGroup 并设置相应的显 示图片 增加第 4 个按钮设置样式为 4 tbrPlaceholder 增加第 5 个按钮 btnFullExtent 设置图片为 Globe bmp 注意 VB 控件库 Microsoft Windows Common Controls 6 0 中包含 ToolBar 和 ImageList 控件 要求设计至少有放大 缩小 平移和全图等工具按钮的工具栏 实验五实验五 设置鼠标形状 加固定设置鼠标形状 加固定 shp 文文 件件 1 实验目的 实验目的 1 鼠标形状 2 添加固定图层 2 实验内容 实验内容 1 显示不同鼠标形状显示不同鼠标形状 在相应按钮 放大 平移 缩小和全图 的 click 事件中分别加入以下代码 或在工具栏的 click 事件中加入以下代码 Map1 MousePointer moZoomIn Map1 MousePointer moPan Map1 MousePointer moZoomOut Map1 MousePointer moDefault 2 加载固定文件夹下的加载固定文件夹下的 shp 文件文件 Dim dc As New DataConnection Dim layer As MapLayer dc Database App Path If Not dc Connect Then MsgBox 在指定的文件夹下没找到图层数据文件 End End If Set layer New MapLayer Set layer GeoDataset dc FindGeoDataset States Map1 Layers Add layer Set layer New MapLayer Set layer GeoDataset dc FindGeoDataset Rivers Map1 Layers Add layer Map1 Refresh 实验六实验六 以对话框形式加以对话框形式加 shp 图层图层 1 实验目的 实验目的 验证以打开对话框的形式打开 MapObjects 支持的所有格式中 shp 格式的图层 完成显示 掌握 CommandDialog 组件添加图层的方法 2 实验内容 实验内容 导入 CommonDialog 组件 这一组件在对象库 Microsoft Common Dialog Control 6 0 中 添加 Map 控件 Conmon Dialog 控件 并将其名称改为 cDlg1 添加一个按钮 在 Form 上增加一个标注 增加图层 的按钮 并增加 Visual Basic 的 CommonDialog 控件 以便确定 Shape 文件的路径和文件名 双击增加图层按钮就可以编程了 增加以下 的 VB 语句 Private Sub Commandl Click 打开对话框的方式添加图层 CommonDialog1 CancelError True CommonDialog1 DialogTitle 选择地图文件 Dim oConnect As New DataConnection Dim oDataset As GeoDataset Dim sName As String Dim oLayer As MapObjects2 MapLayer CommonDialog1 Filter ESRI Shapefiles shp shp CommonDialog1 ShowOpen If Len CommonDialog1 FileName 0 Then Exit Sub oConnect Database CurDir If Not oConnect Connect Then Exit Sub sName Left CommonDialog1 FileTitle Len CommonDialog1 FileTitle 4 Set oDataset oConnect FindGeoDataset sName If oDataset Is Nothing Then Exit Sub Set oLayer New MapLayer oLayer GeoDataset oDataset Map1 Layers Add oLayer Map2 Layers Add oLayer legend1 setMapSource Map1 legend1 LoadLegend True Map1 Refresh End Sub 执行程序 点击增加图层按钮 并选择所要显示的 shape 文件名 可以改变 Map 控件的属性 如 Map 的大小 滚动条的设置 图层及基本图层表示 背景颜色的设置 这些属性页在 VB 的整个设计过程中都存在 可以预置所有图层以及它 们的显示属性 或者可以建立一个界面 让最终用户可以指定要删除或插入的图层以及它 们的代表符号 实验七实验七 以对话框打开栅格格式图层以对话框打开栅格格式图层 1 实验目的 实验目的 验证以打开对话框的形式打开 MapObjects 支持的栅格图层 完成显示 2 实验内容 实验内容 打开栅格图层 Public Sub addImage Dim fullFile As String Dim ilyr As New MapObjects2 ImageLayer cDlg1 CancelError True On Error GoTo FileOpenCancel cDlg1 Filter Standard image formats bmp dib tif jpg jff bil bip bsq gis lan rlc sid sun rs ras s vf img gif cDlg1 DialogTitle Select file for new layer cDlg1 ShowOpen If cDlg1 FileTitle Then Exit Sub fullFile Trim cDlg1 FileName ilyr File fullFile Map1 Layers add ilyr Exit Sub FileOpenCancel Exit Sub End Sub Private Sub raster Click Index As Integer Call addImage End Sub 实验八实验八 图层的显示 隐藏 添加和清图层的显示 隐藏 添加和清 除除 1 实验目的 实验目的 验证图层的显示和隐藏 添加和清除 2 实验内容 实验内容 1 清除图层清除图层 Set layer Map1 Layers 0 Layer Clear 清除 Map1 的所有图层 Map1 Refresh 2 使图层隐藏使图层隐藏 Set layer Map1 Layers 0 layer Visible false True Map1 Refresh 3 使图层可见使图层可见 Set layer Map1 Layers 0 layer Visible True Map1 Refresh 实验九实验九 用用 legend 显示和控制图层显示和控制图层 1 实验目的实验目的 1 用 legend 显示和控制图层 熟悉 MO 的 legend 的方 法和属性 2 用用 list 控件显示和控制图层控件显示和控制图层 2 实验内容实验内容 1 用 用 legend 显示和控制图层显示和控制图层 添加 legend 控件 这一控件在对象库 esri mapobjects lengend control 中 加入 legend 部件到工程中 实现 legend 与 Map1 控件中图层的联动 具体过程 如下 在 legend1 AfterSetLayerVisibl 事件中加入 Map1 Refresh 在程序中加图层后 map1 refresh 前加 legend1 setMapSource Map1 legend1 LoadLegend True 在图层隐藏和可见的地方加 legend1 LayerVisible 0 False or true 在清除图层的地方 Map1 Layers Clear 加 legend1 RemoveAll 或者加 legend1 setMapSource Map1 legend1 LoadLegend True 2 用 用 list 控件显示和控制图层控件显示和控制图层 置顶当前图层 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 Layers lstLayers AddItem lyr Name Next lyr End If End 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 lyr In Map1 Layers lstLayers AddItem lyr Name Next lyr lstLayers Selected i True End If End Sub 下移图层 Private Sub Command4 Click Dim i As Integer Dim lyr As MapObjects2 MapLayer If lstLayers ListIndex 1 And lstLayers ListIndex 0 Then Exit Sub If Map1 Layers 0 Records Fields Combo1 List Combo1 ListIndex Type moString Then strExpression Combo1 List Combo1 ListIndex Combo2 List Combo2 ListIndex Combo3 Text Else strExpression Combo1 List Combo1 ListIndex Combo2 List Combo2 ListIndex Combo3 Text End If Set recSelection Map1 Layers 0 SearchExpression strExpression If Not recSelection EOF Then Map1 DrawShape recSelection g symSelection End If Set recSelection Nothing End Sub Private Sub Command1 Click Map1 Refresh End Sub Private Sub Form Load DrawLayer If Not Map1 Layers Count 1 Then End Label1 Caption 选择表达式 Command1 Caption 查找 With Combo1 Dim fldLyr As MapObjects2 Field For Each fldLyr In Map1 Layers 0 Records Fields If fldLyr Type 20 Then AddItem fldLyr Name End If Next fldLyr ListIndex 0 End With With Combo2 AddItem AddItem AddItem AddItem Like ListIndex 0 End With Combo3 Text Call ListValues Set g symSelection New MapObjects2 Symbol With g symSelection SymbolType Map1 Layers 0 Symbol SymbolType color moDarkGreen End With End Sub Private Sub Combo1 Click Dim recLyr As MapObjects2 Recordset Dim strName As String If Len Combo1 List Combo1 ListIndex 0 Then Set recLyr Map1 Layers 0 Records strName Combo1 List Combo1 ListIndex Combo3 Clear Do While Not recLyr EOF Combo3 AddItem recLyr Fields strName ValueAsString recLyr MoveNext Loop End If End Sub 实验十四实验十四 窗口重新布局时 各控件的布窗口重新布局时 各控件的布 局调整局调整 1 实验目的实验目的 验证窗口重新布局 最大化 最小化 还原等 时 各控件的布局调整 以同 一比例方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《谁画的鱼最大》课件
- 颅内高压危象和脑疝护理
- 亲子沟通课件
- 亲子行李箱课件
- 亲子安全培训课件
- 自动双层停车场控制系统设计
- 腾讯会议录制讲解方法
- 公司级安全培训经验课件
- 新入职怎么写年终总结
- 腹股沟斜疝术后护理查房
- 湿地巡护员培训课件
- 2025鄂尔多斯市城市建设投资集团招聘92人考试参考题库及答案解析
- 2025年地质实验室技术员综合素质考核试卷及答案解析
- 小班海浪滚滚课件
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 2025年全国企业员工全面质量管理知识竞赛题库及答案(共132题) - 副本
- 会计学全套课件第一学期公开课一等奖省优质课大赛获奖课件
- 公开课第一课素描基础入门课件
- 新旧西藏的对比(分析“西藏”)共22张课件
- 杭州市主城区声环境功能区划分图
- 门机防腐施工方案
评论
0/150
提交评论