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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

SuperMap Object 基本编程.docx

1、SuperMap Object 基本编程SuperMap Object 基本编程一. 工作空间1.打开工作空间SuperWorkSpace.open(); ,有文件和数据库的区别说明:打开工作空间时,会自动打开对应的数据源;但如果对应的数据源,因数据库服务器信息调整等原因,没有自动打开时并不强制报错,可以检查是否正确,并用程序调整数据源的连接信息等,以后会重新自动打开。2.工作空间的保存SuperWorkSpace.save();3.工作空间的保存SuperWorkSpace.saveAs(); ,有文件和数据库的区别说明:保存工作空间时,会自动保存对应的数据源;数据库型时,工作空间数据库,可

2、以是空库,SM会自动建立SmWorkspace数据表,每个工作空间对应一条记录。二. 数据源1.创建数据源SuperWorkSpace.createDataSource() 有文件和数据库的区别2. 打开数据源SuperWorkSpace.openDataSource(),文件型SuperWorkSpace.openDataSourceEx()数据库型说明:1)如果已经打开过工作空间,且还没有关闭,打开新的数据源时,该数据源会被附加到这个工作空间里。2)无率是文件型,还是数据库型的工作空间,可以存在多个数据源,且允许是文件型或数据库型数据源。3. 获得数据源SuperWorkSpace.Dat

3、aSource.item()4. 关闭数据源,只是从工作空间中移出,并不真正删除。SuperWorkSpace.DataSource.Remove()SuperWorkSpace.DataSource.RemoveAll()三. 数据集1. 创建数据集soDataSource.createDataset();说明,每个数据集对应一个数据表,表名同数据集的名称。2. 获得数据集soDataSource.Datasets.Item();SuperWorkspace.DataSources.Item(i).Datasets.Item(i)SuperMap.Layers.Item(i).Dataset

4、SuperMap.Selection.item(i).Dataset3. 删除数据集SoDatasource.DeleteDataset()4.显示数据集soLayers.addDataset()soLayers.Refresh()5.与soDatasetVector 对象的关系,可以简单互相转换soDatasetVector objDtv = (soDatasetVector)objDataset; 反向转换同理5、从数据集加入到图层时,样式处理问题1)点击SuperWkspManager节点事件,应该写的是点击数据集的情况下,将数据集添加到地图窗口吧,数据集肯定是不能展示风格,如果你希望每

5、次打开数据集时都有原来的风格,建议将之前的风格保存为XML(TOXML),下次点击时调用XML(FROMXML)。2)每个图层都可导入风格XML文件,地图是不需要设置的,因为地图中的图层保存了风格信息,但数据集是不保存风格的。3)读写都是XML字符串的方式,字符串的保存,以及与数据集的对应关系,需要自己处理;如数据库型时要加表和字段,文件型时自己处理对应的文件和内容。4)个人总结,尽量用CAD型保存数据,这样风格等的处理不麻烦;但调整样式时,需要按对象循环修改;生成等值线等时,要先建立临时图层,将对象复制到允许的点或线图层。四.基本操作1. SuperMap.Action seAction 常

6、量SuperMap.Action=seAction.scaZoomIn地图放大SuperMap.Action = seAction.scaZoomOut;地图缩小SuperMap.Action = seAction.scaZoomOut;地图自由缩放SuperMap.Action = seAction.scaPan;地图漫游SuperMap.ViewEntire() 全幅显示地图2. 编辑操作SuperMap.Action = seAction.scaSelect;点击选择对象SuperMap.Action = seAction.scaNull;取消工具选择SuperMap.Action=sc

7、aEditCreatePointSuperMap.Action= scaEditCreatePolylineSuperMap.Action= scaEditCreatePolygonseAction中有手工画点、线、各种面、各种线、文字等功能,详细看帮助。3. 跟踪层编辑SuperMap.Action= scaTrackPointSuperMap.Action= scaTrackPolylineSuperMap.Action= scaTrackPolygon五. 图层管理可以通过SuperLegend控件实现可视化的管理。更新后SuperMap.Refresh()也可以通过图层的soLayer

8、.Editable ,soLayer.Selectable,soLayer.Snapable,soLayer.Visible 来进行设置。1. 点线面等简单类型图层的风格设置: 只能按图层设置统一的风格,且必须保存地图,用时要打开地图。supermap.layers(i).stylesupermap.showstylePicker(soStyle, Dimension)说明,CAD等复杂类型的图层,风格必须按对象设置,不用保存地图。2. 文本层的图层风格:SuperMap.ShowTextStylePicker()3. 地图的操作:SuperMap.SaveMapAs() 另存地图,首次建立一

9、个地图文件时用此,要指定虚拟的文件名。SuperMap.SaveMap() 保存当前地图SuperMap.OpenMap() 打开指定的地图注意,1)简单图层的样式、地图的背景、图层的选择、专题图等信息是保存的地图文件中的。2)保存工作空间时,必须保存地图;打开工作空间时,必须打开地图;否则以上信息会丢失,或不显示。3)地图文件是保存在工作空间中的,不是真正的单独存储。4)一个工作空间允许保存多个地图文件,这样相对灵活。4. 按指定的比例尺显示:soLayer.VisibleScaleMax, soLayer.VisibleScaleMin按对象大小进行过滤显示,象素显示,filterk可以进

10、行筛选显示。5.说明,图层名称 = 数据集名称 + + 数据源别名六. 记录集 soRecordSet1. 获得记录集soDatasetVector.Query(sql,true) sql为查询语句,相当于where条件,但通配符与标准SQL不同,要查帮助。soRecordset soDatasetVector.Query(strSQLFilter,bHasGeometry,objFields,strOptions) bHasGeometry一般不用,直接写false;Fields为指定要获取的字段,否则为全部字段;strOptions为排序或分组等,与SQL语句同。soDatasetVect

11、or.QueryEx(sql,true)soDatasetVector.QueryByDistance(sql,true)soSelection.toRecordset()2. 添加记录:soRecordset.addNew()纯属性表的添加 soRecordSet.AddNew(nothing)3. 几何对象的添加:soGeometryRecordSet.getGeomotry()Recordset.setGeometry()从事件获得:Geometry_Selected()SuperMap.AfterGeometryAdded()4. 选择集与记录集selection.toRecordse

12、t() 根据地图选择的对象,生成记录集,以便程序修改或调整风格等。selection.FromRecordset() 根据记录集,自动选择地图上的对象,避免用户一个个的手工选择。5. 不选中到选中soSelection.RemovesoSelection.RemoveAll6. 通过地图查询属性的过程选取对象()-得到记录集-取值显示selection.toRecordset()-soRecordset.GetFieldValue7. 通过属性查询地图的过程查询条件的设置-获得查询记录集-添加到选择集layer.Dataset-soDatasetVector-soDatasetVector.Q

13、uery(sql,true) - selection.FromRecordset()七. 跟踪层跟踪层是所有图层的最上面一层,有Layer才有TrackingLayer跟踪层临时放在内存中,关掉Layer,则TrackingLayer随之消失跟踪层速度比较快,可以动态更新空间对象1. 添加对象到跟踪层soTrackingLayer.AddEvent(objGeometry ,objStyle,string)分别设置Geometry,风格和标签2. 获得跟踪层上面的对象soTrackingLayer. Event3. 删除跟踪层上面的对象soTrackingLayer.ClearEvents()

14、4. 移动跟踪层上面的对象soGeoevent.move()soGeoevent.moveTo()5. 几何对象和文本对象的风格之不同1)几何对象的风格对应为soStyle,适用于点、线、面等对象。2)文本对象对应的风格是soTextStyle,适用于普通文本对象、专题图的文本对象。八.布局对象SuperLayout1. 布局窗口中选中的对象SuperLayout.Selection2. 布局窗口中的元素SuperLayout.Elements3. 布局窗口的鼠标事件SuperLayout.LytAction4. SuperLayout 中的地图对象,soLytMap5. SoLytMap.M

15、apHold 锁定地图可以用soLytMap.MapAction进行放大缩小九. 地图控件的关联SuperLegend1.connect SuperMap1.handleSuperMap1.connect SuperWorkspace1.handleSuperLayout1.connect Superworkspace1.handleSuperWkspManager1.connect Superworkspace1.handleSuperGridView1.connect objRecordset十. 地图控件的释放顺序SuperLegend1.disconnectSuperMap1.clos

16、eSuperMap1.disconnectSuperLayout1.disconnectSuperWkspManager1.disconnectSuperWorkspace1.close十一.应用举例1、工作空间另存时,数据源仍是原始工作空间的数据源,原理和解决办法1)如文件型的工作空间和数据源,另存为数据库型工作空间时,对应的数据源仍是本地文件,这样无法达到共享的目的;反之,数据库型另存为本地文件时,数据源为SQL的,也无法达到备份或个人调整的目的。2)解决方法,打开另存的工作空间,增加数据库型的新数据源,在旧的数据源中按记录集(Dataset)循环,用.CopyDataset将数据复制到新

17、的数据源中,再从工作空间中移除旧的数据源,保存工作空间即可。2、地图的背景控制1)用户临时指定 soStyle objStyle; objStyle = axSuperMap.BackStyle; /* 语法soStyle SuperMap.BackStyle 说明,返回/设置 SuperMap 控件的背景风格(soStyle)。 备注,该属性主要用于设置 SuperMap 控件的背景风格,系统默认背景颜色为白色。 */ soResources objRss; soFillStyleLib objFlLib; objRss = axSuperWorkspace.Resources; objFl

18、Lib = objRss.FillStyleLib; objFlLib.ShowPicker(objStyle); /保存工作空间时必须保存地图信息,否则界面的背景不会保存;打开时也必须打开对应的地图,否则背景不显示。 axSuperMap.Refresh(); Marshal.ReleaseComObject(objStyle); objStyle = null; Marshal.ReleaseComObject(objFlLib); objFlLib = null; Marshal.ReleaseComObject(objRss); objRss = null;2)系统预先定义背景的方法,

19、如直接定义背景色为X色,VB写的,不翻译了Dim oStyle As soStyleoStyle.BrushColor=vbRed Set oStyle = SuperMap1.BackStyle.既然SuperMap1.BackStyle返回的是sostyle对象,那直接设置这个soStyle对象中相关的属性,再把它穿回给SuperMap的背景色就可以3、利用鼠标中轴进行地图的放大和缩小控制 private void axSuperMap_MouseWheelEvent(object sender, AxSuperMapLib._DSuperMapEvents_MouseWheelEvent

20、 e) /用鼠标中键进行地图的放大和缩小,操作步骤: /1、鼠标左键或右键点击一下地图控件的位置,2、前后移动鼠标中轮看变化。 if (e.zDelta 0) /SuperMap.Zoom(dZoomRatio As Double),根据指定的比率缩放地图。 this.axSuperMap.Zoom(1.5); if (e.zDelta 0) this.axSuperMap.Zoom(1 / 1.5); this.axSuperMap.Refresh(); 4、列表显示问题建议,特殊情况下,将记录集数据一条条加入到微软的记录集中,并用微软的列表显示,这样排序、分页、尤其是数据的格式化问题,处理起来要容易许多。

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

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