本文主要介绍SuperMap的一些基本概念和开发过程中必然会接触的几个基本类。
一、工作空间(Workspace)
通俗讲工作空间就是一个包含了数据、资源、地图组织关系的一个工程项目,通常以(.smwu、.smw、.sxwu、.sxw)格式结尾。后面所提到的地图、数据源等多个信息都是存储在工作空间中。
常用方法主要有:
| 方法 | 说明 |
|---|
| open | 打开本地工作空间 |
| close | 关闭已打开的工作空间 |
| getMaps | 获取工作空间保存的所有地图 |
| getDatasources | 数据源集合 |
| save | 保存修改的工作空间 |
二、数据源(Datasource)
数据源管理投影信息、数据源与数据库的连接信息和对其中的数据集的相关操作,如通过已有数据集复制生成新的数据集等。
每个数据源对应一种数据引擎。UDB、UDBX 数据源属于文件型数据源,数据源以文件方式存储(.udb,.udd,*.udbx)。
一个工作空间可以打开多个数据源,不同的数据源通过不同的别名(Alias)进行标识。
| 方法 | 说明 |
|---|
| getDatasets | 返回此数据源所包含的数据集的集合对象 |
三、数据集(Dataset)
数据集一般分为矢量数据集(DatasetVector)和栅格数据集(DatasetGrid)和影像数据集(DatasetImage)。
数据集是 GIS 数据组织的最小单位。其中矢量数据集又分为点数据集,线数据集,面数据集等,各矢量数据集是空间特征和性质相同而组织在一起的数据的集合。而栅格数据集由像元阵列组成,在表现要素上比矢量数据集欠缺,但是可以很好的表现空间现象的位置关系。光栅数据集包括影像数据集和栅格数据集。
| 方法 | 说明 |
|---|
| getName | 返回此数据集的名称,是数据集的唯一标识 |
| getPrjCoordSys | 返回数据集的投影信息 |
| getType | 返回此数据集的类型 |
| 方法 | 说明 |
|---|
| getRecordset | 根据给定的参数来返回空的记录集或者返回包括所有记录的记录集对象 |
| query | 利用查询条件查询数据 |
| 方法 | 说明 |
|---|
| buildPyramid | 创建影像金字塔,创建影像金字塔前,必须先关闭数据集 |
| 方法 | 说明 |
|---|
| buildPyramid | 创建影像金字塔,创建影像金字塔前,必须先关闭数据集 |
| getBandCount | 获取影像数据集的波段数 |
| getColorSpace | 返回色彩显示模式 |
四、地图(Map)
地图是对地理数据的可视化,通常由一个或多个图层组成。一个地图对象通常通过其图层集合对象 Layers 来管理其中的所有图层,并且地图必须与一个工作空间相关联,以便来显示该工作空间中的数据。
| 方法 | 说明 |
|---|
| close | 关闭当前地图 |
| createLegend | 设置图例 |
| dispose | 释放对象所占用的资源 |
| getName | 返回当前地图的名称 |
| getScale | 返回当前地图的显示比例尺 |
| getViewBounds | 返回当前地图的可见范围,也称显示范围 |
| open | 打开指定名称的地图 |
| viewEntire | 全幅显示此地图 |
| zoom | 将地图放大或缩小指定的比例 |
| setViewBounds | 设置当前地图的可见范围,也称显示范围 |
| setVisibleScalesEnabled | 设置是否使用固定比例尺来显示地图 |
| refresh | 重新绘制当前地图 |
五、图层(Layer)
加载在地图的图层都有一个与之对应的数据集,数据集是对数据的存储,图层是对数据的表达。
| 方法 | 说明 |
|---|
| getAdditionalSetting | 返回普通图层的风格设置 |
| getDataset | 返回此图层对应的数据集对象 |
| setIsSwipe | 设置图层是否使用卷帘效果 |
| setMaxVisibleScale | 设置此图层的最大可见比例尺 |
| setMinVisibleScale | 设置此图层的最小可见比例尺 |
| setOpaqueRate | 设置图层不透明度 |
| setSelectable | 设置图层中对象是否可以选择 |
| setVisible | 设置此图层是否可见 |
六、其他
地图显示控件,所有的数据可视化都通过MapView展示。
| 方法 | 说明 |
|---|
| addCallout | 添加点标注控件 |
| addDynamicView | 添加动态层 |
| getMapControl | 获取地图控件 |
与地图交互主要由该类完成。主要有手势交互(平移、放大、缩小),数据编辑等。
| 方法 | 说明 |
|---|
| addActionChangedListener | 设置动作变更监听器 |
| addGeometryAddedListener | 添加对象添加监听器 |
| addGeometryDeletedListener | 添加对象删除完成监听器 |
| addGeometrySelectedListener | 添加对象选中监听器 |
| addMeasureListener | 设置量算监听器。 |
| appointEditGeometry | 指定编辑几何对象 |
| cancel | 取消操作,对于采集而言,新建的未提交的数据将被清除,对于编辑,将回到上一次提交保存的状态。 |
| deleteCurrentGeometry | 删除当前绘制出来的几何对象。 |
| dispose | 释放显示控件 |
| enableRotateTouch | 设置地图手势旋转是否可用 |
| enableSlantTouch | 设置地图手势俯仰是否可用 |
| getAction | 返回地图控件中地图的当前操作状态。 |
| getCurrentGeometry | 获取当前绘制的对象。 |
| getEditLayer | 获取当前编辑图层 |
| getMap | 返回在地图控件中显示的地图对象。 |
| getNavigation | 获取导航模块。 |
| getStrokeColor | 获取绘制对象时画笔的颜色。 |
| getStrokeFillColor | 获取绘制对象时画笔的填充颜色。 |
| getStrokeWidth | 获取绘制对象时画笔的宽度。 |
| getUserAction | 获取用户设置的动作。 |
| outputMap | 将当前显示内容绘制到指定位图上。 |
| panTo | 在指定的时间内平移地图到指定的点。 |
| redo | 地图窗口上恢复上一步的操作。 |
| setAction | 设置地图控件中地图的当前操作状态。 |
| setMapParamChangedListener | 设置地图参数变化监听器。 |
| setNodeColor | 设置节点的颜色。 |
| setNodeStyle | 设置节点的样式 |
| submit | 提交操作,对于采集而言,该接口将把采集的新几何对象写入到数据集,对于编辑,则是更新数据集中的正在编辑的对象。 |
| undo | 地图控件上撤消上一次的操作。 |
| zoomTo | 在指定的时间内将地图缩放到指定的比例尺。 |