




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 GIS开发与应用开发与应用 Super Map二次开发二次开发 杜福光 E-mail: 公共邮箱:公共邮箱: 唐山师范学院 资源管理系 2012.2 通过本章学习,能够使用SuperMap Objects控件编写代码,掌握并实现以下基本功能: 1、打开各种数据源;、打开各种数据源; 2、显示空间几何图形;、显示空间几何图形; 3、能进行地图的放大、缩小等基本操作;、能进行地图的放大、缩小等基本操作; 4、对地图窗口中的图层进行管理。、对地图窗口中的图层进行管理。 本章内容本章内容n 4.1 打开数据源打开数据源n 4.2 空间数据的显示空间数据的显示n 4.3 地图放大、缩小、漫游等基本操作
2、地图放大、缩小、漫游等基本操作n 4.4 图层管理图层管理4.1 打开数据源打开数据源打开数据源思路:打开数据源思路:4.1 打开数据源打开数据源n 控件控件n SuperWorkSpace、Buttonn 按钮事件按钮事件n SuperWorkSpace.OpenDatasourcen SuperWorkspace.OpenDatasourceExn 传递的参数不同,Ex用于打开数据库类型数据源4.1 打开数据源打开数据源 加载控件:SuperMap Core Controls核心控件,并将SuperWorkSpace控件添加到窗体上。 打开数据源文件:打开数据源文件:l 语法描述语法描述s
3、oDatasource SuperWorkspace.OpenDataSource(strDataSourceName As String, strAlias As String, nEngineType As seEngineType, bReadOnly As Boolean)4.1 打开数据源打开数据源参数说明:l 实例实例:编写代码实现打开SDB数据源功能(1)窗体设计)窗体设计: 添加Command控件到窗体上,将Command1.Caption属性设置为“打开数据源”。(2)代码:代码:Private Sub Command1_Click() 打开数据源 Dim objDs As
4、soDataSource 定义数据源对象变量 Dim strDsName As String 定义数据源名称变量 strDsName = App.Path & worldworld.sdb 数据源相对路径相对路径 Set objDs = SuperWorkspace1.OpenDataSource(strDsName, world, sceSDBPlus, False) 打开数据源 If objDs Is Nothing Then 判断是否打开成功 MsgBox 打开数据源失败! Exit Sub Else MsgBox 打开数据源成功! End If Set objDs = Noth
5、ing 释放变量 End Sub 本章内容本章内容n 4.1 打开数据源打开数据源n 4.2 空间数据的显示空间数据的显示n 4.3 地图放大、缩小、漫游等基本操作地图放大、缩小、漫游等基本操作n 4.4 图层管理图层管理4.2 空间数据的显示空间数据的显示 加载控件:加载SuperMap Core Controls 核心控件、工作空间管理器控件SuperWkspManager控件,并将SuperMap、SuperWorkspace控件和SuperWkspManager控件添加到窗体上。 在工作空间中打开的数据源,可以通过VB中的TreeView控件、ListView控件将其显示出来。Supe
6、rMap Objects为了降低开发难度,提高开发效率,提供了专门的辅助控件工作空间管理器控件SuperWkspManager,其主要功能是将工作空间中管理的所有数据进行树状的直观显示。显示方法只需以下两个步骤: n Load/Unload事件事件n SuperWkspManager.Connect SuperWorkspace.Handlen SuperMap1.Connect SuperWorkspace1.Handlen SuperWkspManager.Disconnectn SuperWkspManager.Refreshn 控件控件n SuperWorkSpace、 SuperWk
7、spManager、 SuperMap(1)将工作空间管理器控件和工作空间控件进行关联,方法为:Private Sub Form_Load( ) SuperWkspManager1.Connect SuperWorkspace1.Handle 在相关控件之间建立连接End Sub(2)在打开数据源成功后,刷新工作空间管理控件,方法为:SuperWkspManager1.Refresh 通过以上两个步骤,可将工作空间中的数据显示出来,但并没有将图形显示出来,以下通过实例介绍通过工作空间管理器控件打开数据集显示图形方法和过程。l语法描述语法描述、工作空间管理控件的双击事件、工作空间管理控件的双击事
8、件SuperWkspManager.LDbClick( nFlag As SeSelectedItemFlag, strSelected As String, strParent As String )参数说明:l语法描述语法描述 2、添加数据集到地图窗口的图层集中添加数据集到地图窗口的图层集中soLayer soLayers.AddDataset( objDataset As soDataset, bAddToHead As Boolean)参数说明:n实例:实例: 双击工作空间管理器中的某个数据集后,即可将该数据集显示在地双击工作空间管理器中的某个数据集后,即可将该数据集显示在地图窗口上图
9、窗口上窗体设计窗体设计:将工作空间管理器控件、地图窗口控件添加到窗体上即 SuperWkspManager1、SuperMap1主要步骤主要步骤:(1) 判断选中的节点是否是数据集(If nFlag = scsDataset Then);(2) 将选中节点的父节点字符串(strParent)作为数据源的别名,获得要显示的数据集对应的数据源;(3) 将选中节点的字符串(strSelected)作为数据集的名称,得到点中的数据集;(4) 将步骤3中得到的数据集添加到地图窗口的图层中;(5) 刷新地图窗口。SuperWkspManager_LDbClick(nFlag As SeSelectedIt
10、emFlag, strSelected As String, strParent As String) Dim objDs As soDataSource 数据源变量 Dim objDt As soDataset 数据集变量 If nFlag = scsDataset Then 如果点中的是数据集 Set objDs = SuperWorkspace1.Datasources(strParent) If Not (objDs Is Nothing) Then 如果数据源非空 Set objDt = objDs.Datasets(strSelected) If Not (objDt Is Not
11、hing) Then 如果数据集非空将选中的数据集添加到地图窗口的层中进行显示 SuperMap1.Layers.AddDataset objDt, True SuperMap1.Refresh End If End If End If Set objDt = NothingSet objDs = Nothing代码:代码:注:注:地图窗口中显示的图形数据来自于工作空间。因此,在显示数据之前,需要将 SuperMap控件和SuperWorkspace 控件进行关联。方法是:SuperMap1.Connect SuperWorkspace1.Handle(通常写在Form_Load事件中),在使
12、用完后需要断开控件之间的连接。Private Sub Form_Load( ) SuperWkspManager1.Connect SuperWorkspace1.Handle 加载地图列表时需关联 SuperMap1.Connect SuperWorkspace1.Handle 地图显示时需关联End SubPrivate Sub Form_Unload(Cancel As Integer)SuperWkspManager1.DisconnectSuperMap1.CloseEnd Sub 本章内容本章内容n 4.1 打开数据源打开数据源n 4.2 空间数据的显示空间数据的显示n 4.3 地
13、图放大、缩小、漫游等基本操作地图放大、缩小、漫游等基本操作n 4.4 图层管理图层管理4.3 地图放大、缩小、漫游等基本操作地图放大、缩小、漫游等基本操作l 语法描述SuperMap1.Action seAction 通过该接口可以方便地实现地图窗口中的五十多种基本操作和编辑功能,包括:(1)基本操作功能:如放大、缩小、漫游、自由缩放和选择等功能;(2)图层基本编辑功能:如在地图窗口图层中直接创建点、线、面,以及圆、弧、椭圆等参数化的几何对象,还可以进行节点编辑,以及生成流动注记等功能;(3)跟踪层的相应功能:直接在跟踪层上添加各种几何对象。参数说明:n 实例:实例: 在地图窗口中进行放大、缩
14、小、平移、自由缩放、全图和选择基本操作。本实例是增加了Toolbar与ImageList控件,制作了图标工具栏,实现了相应功能。n 代码:代码: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1: SuperMap1.Action = scaPan Case 2: SuperMap1.Action = scaZoomIn Case 3: SuperMap1.Action = scaZoomOut Case 4: SuperMap1.Action
15、 = scaZoomFree2 Case 5: SuperMap1.ViewEntire Case 6: SuperMap1.Action = scaSelect Case 7: SuperMap1.Action = scaRectSelect Case 8: SuperMap1.Action = scaCircleSelect Case 9: SuperMap1.Action = scaRegionSelect End Select End Subn 运行结果:运行结果: 本章内容本章内容n 4.1 打开数据源打开数据源n 4.2 空间数据的显示空间数据的显示n 4.3 地图放大、缩小、漫游
16、等基本操作地图放大、缩小、漫游等基本操作n 4.4 图层管理图层管理4.4 图层管理图层管理n 采用采用SuperLegend图例控件进行图层管理图例控件进行图层管理 图例控件用于管理地图窗口中所有图层的状态,使用非常方便。 (1)将图例控件图例控件与地图控件地图控件相关联,方法是:SuperLegend1.Connect SuperMap1.Handle; (2)当地图窗口中的图层发生变化时刷新图例,方法是:SuperLegend1.Refresh; (3)修改图例中图层属性后会触发SuperLegend_Modified事件,在该事件中刷新地图即可看到图层修改的结果。 使用图例控件后,其对图层的基本控制的功能全部封装在控件的右键菜单中,用户可以直接使用完成对图层的控制。n 实例实例: 通过图例控件中的右键菜单,调整地图图层n 窗体设计窗体设计: 加载SuperLegend控件并将它添加到窗体上,将SuperLegend1.Appearance设置为1。n 代码:代码:1.窗体的Load事件Private Sub Form_Load() 建立控件的连接 SuperLegend1.Connect SuperMap1.Handle End Sub2.图例控件的 Modified事件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年德胜合生财富广场租赁合同示例
- 国企租用房屋合同范本
- 商铺大楼出租合同范本
- 员工承包仓库合同范本
- 商铺合租分租合同范例
- 见习毕业生劳动合同范本
- 园林开发施工合同范本
- 含税金合同范例
- 围栏安装服务合同范例
- 纤维板行业可持续发展评价-深度研究
- 中考心理减压辅导 中考前心理健康教育主题班会
- 小学四年级心理健康教育课
- 【上市公司的财务风险的分析和防范:以三只松鼠为例10000字(论文)】
- 部编版小学语文四年级下册教师教学用书(教学参考)完整版
- 幼儿园消防安全知识竞赛试题及答案
- 莫高窟群文阅读教学设计
- 乐理视唱练耳简明教程课后习题答案
- 2023年10月自考试题02398土力学及地基基础
- 农业领域的服务礼仪
- 高压旋喷桩加固工程施工方案
- 【盐津铺子公司成本管理现状、问题及对策】10000字
评论
0/150
提交评论