SuperMap Objects 入门教程-1
目的:
了解SuperMap Objects 最基本的操作流程。
实用对象:
初次接触SuperMap objects 控件的用户。
涉及到的对象与相关接口(事件、属性、方法)
1. SuperMap 对象:用于显示地图、地图图层管理、地图放大、缩小等;SuperMap对象亦用于完成地图编辑以及其他与地图有关的操作。同一个工程中可以有多个 SuperMap 控件。
成员 | 说明 |
Action 属性 | 返回/设置 SuperMap 对象的当前Action 操作类型,Action 的值是一个SeAction 常量. 通过设置 Action 属性可以完成与鼠标有关的操作,当 Action 的值为零时,表示不进行任何操作。通常与地图显示有关的操作如地图的放大、缩小、自由缩放、平移以及简单的编辑操作如画点、画线、画面等都可以通过设置 SuperMap 控件的 Action 属性完成,具体请参阅 seAction 常量。 |
Selection属性 | 返回/设置 SuperMap 对象中别选中的空间对象集合,在SuperMap 地图窗口中,可以有多个图层同时处于选择状态,但当前被选中的图层只能有一个,即SuperMap.Selection 只能包含同一个图层上的空间对象。 返回soSelection 类型的对象 |
Layers 属性 | 返回SuperMap 对象中图层集合,在SuperMap 对象中,可以叠加显示多少个图层,通过该属性可以返回图层集合对象,便于管理图层叠置顺序、可已编辑状态已经对所有图层对象的引用。返回类型soLayers |
ViewEntire()方法 | 显示全幅地图 |
Connect()方法 | 用于建立SuperMap 对象与SuperWorkspace对象之间的链接. SuperWorkspace 是专门负责管理数据的,SuperMap 地图窗口中显示的数据都取自 SuperWorkspace,因此,显示之前需要建立 SuperMap 与 SuperWorkspace 的连接。当连接成功时,返回 True。此外,控件使用中,凡是需要读取工作空间中数据的,都需要与工作空间建立连接。如SuperLayout 布局控件、SuperAnalyst分析控件、Super3D三维控件、SuperWkspManager工作空间管理器控件等。 |
Refresh()方法 | 刷新地图窗口或者说是从新装置地图 |
Disconnect()方法 | 中断SuperMap 对象与SuperWorkspace 对象之间的连接。 |
GeometrySelected()事件 | 当地图窗口中的空间对象被选中时触发,对于并不同的选择方式,该事件触发的顺序不同。1.点选,框选,圆选时,先触发GeometrySelected,然后是MouseDown事件; |
2. SuperWorkspace 对象:主要完成数据的组织、管理、处理,包括打开、关闭、新建、保存工作空间文件(*.smw),新建、打开数据源文件(*.sdb),修复、压缩数据源文件、字体文件的装载,卸载等等。 工作空间是一个工程项目(同一个事务过程 Transaction)中所有的数据源(soDatasources)、资源(soResources)、布局(soLayouts)等数据的组织关系的集合。
成员 | 说明 |
ObjectHandle属性 | 返回工作空间的句柄 |
Handle属性 | 返回工作空间的句柄 |
OpenDataSource() 方法 | 打开文件数据源,StrDataSDourceName数据源文件的全路径名. nEngineType :数据源的引擎类型,常用的类型有SDB,SDBPlus,MicroStation DGN,AutoCAD DXF,AutoCAD DWG,BMP,JPG,TIFF 和 RAW。 |
3. soDataSets 对象:该对象是 soDataset 对象的集合,通常作为 soDataSource 对象的一个属性,是指一个数据源所包含的所有数据集的集合。
可以通过数据集的名称或者索引来访问某个数据集。如:SuperWorkspace.Datasources(1).Datasets("World")。
4. soDatasetVector对象:矢量数据集对象.用于对矢量数据集进行描述、管理和操作。
(3)数据集是由 SuperWorkspace 进行管理和组织的,常常通过把数据集加到 SuperMap 的图层中的方式来显示和编辑数据。
成员 | 说明 |
Query 方法 | 通过属性过滤条件查询矢量数据集,结果可包含空间几何对象和属性信息。成功返回记录集对象(soRecordset),失败返回 Nothing 或者 NULL。 strSQlFilter: 查询条件,相当于SQL语句中的Where 子句, bHasGeometry:是否查询空间数据。True,表示要取空间数据;False,表示不取空间数据;若查询时不取空间数据,即只查询属性信息,则在返回的Recordset中,凡是对记录集的空间对象进行操作的方法,都将无效,例如,调用soRecordset.GetGeometry 将返回空、SuperMap.EnsureVisibleRecordset无效等。 [objFields]:可选参数,字段列表。缺省时,查询结果包括全部字段。否则,只有列表中列出的字段,内容相当于SQL语句中的查询字段部分,如SELECT field1,field2 FROM dt1 WHERE SmID < 10,该语句中的field1和field2都属于查询字段,可以用as设置别名详见本页示例部分。 [ strOptions ]:查询选项。如查询出的结果(1)是否按某一字段排序(Order By),默认为升序,如需按降序排列,格式为"Order By * desc",其中*代表某一字段名;(2)是否按某一字段分组(Group By)等。对于SDB或者SDBPlus引擎而言,当 bHasGeometry 为 True 时,本参数无效。 |
5. soLayers 对象: 图层集合对象。该对象作为 SuperMap 控件的图层集合对象(soLayers),用来管理地图中的所有图层,可对其进行添加、移动、删除等操作。该对象不可创建。
6. soRecordset 对象:记录集对象,记录集相当于一个数据的子句,通常通过通用查询或者选择的方式得到。在记录集中,可以进行记录的天津、修改、删除等操作,也可单对数据集的属性进行维护.
成员 | 说明 |
GetFieldInfo()方法 | 获取当前记录的某一个字段信息,返回soFieldInfo类型的对象,失败返回Noting 或者NULL |
GetFieldValue()方法 | 获取当前记录的某个字段的值 |
MoveFirst()方法 | 将记录集指针移动到第一条记录。 |
FieldCount 属性 | 返回记录集字段个数 |
7. soSelection 对象: 选择集对象,该对象主要用于存放地图上别选中的对象.选择集中可添加的对象只能来源于一个图层,通过 soSelection.Dataset 来指定。
选择集对象可以提取为记录集(soSelection.ToRecordset),进行属性浏览等操作;记录集也可通过一定的方法转换为选择集进行高亮显示(soSelection.FromRecordset)。
8. soStyle 对象: 样式控制对象
PenColor 属性,PenStyle 属性,PenWidth 属性、BrushStyle 属性,BrushColor 属性, BrushOpaqueRate 属性
学习实践:
前面我们对一些基本对象的相关属性有了一定了解,接下来我将通过一个实例对来对这个对象有一个初步的了解。
运行效果图: