com.supermap.realspace.spatialanalyst
类 Generalization3D

java.lang.Object
  继承者 com.supermap.realspace.spatialanalyst.Generalization3D

public class Generalization3D
extends java.lang.Object

三维矢量制图综合类。该类提供三维矢量数据的融合、重采样和光滑等功能。

从以下版本开始:
SuperMap iObjects Java 7.0.0

方法摘要
static void addSteppedListener(SteppedListener l)
          添加一个进度条事件(SteppedEvent)的监听器。
static DatasetVector dissolve(DatasetVector sourceDataset, Datasource targetDatasource, java.lang.String targetDatasetName, DissolveParameter3D dissolveParameter)
          对三维矢量数据集进行融合处理,目前支持三维线数据集。
static DatasetVector interpolateShape(DatasetGrid datasetGrid, DatasetVector datasetVector, Datasource targetDatasource, java.lang.String targetDatasetName, double sampleDistance, double zFactor, boolean isVerticesOnly)
          基于栅格数据集将二维矢量数据集转为三维矢量数据集的插值方法。
static void removeSteppedListener(SteppedListener l)
          移除一个进度条事件(SteppedEvent)的监听器。
static boolean resample(DatasetVector datasetVector, double tolerence)
          对三维矢量数据集进行重采样,目前支持三维线数据集和网络数据集。
static boolean smooth(DatasetVector datasetVector, int smoothness)
          对三维矢量数据集进行光滑,目前支持三维线数据集和网络数据集。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

dissolve

public static DatasetVector dissolve(DatasetVector sourceDataset,
                                     Datasource targetDatasource,
                                     java.lang.String targetDatasetName,
                                     DissolveParameter3D dissolveParameter)
对三维矢量数据集进行融合处理,目前支持三维线数据集。

三维矢量数据融合是指将融合字段值相同的三维集合对象合并为一个简单对象或复杂对象。目前支持对三维线数据进行融合。子对象是构成简单对象和复杂对象的基本对象。简单对象由一个子对象组成,即简单对象本身;复杂对象由两个或两个以上相同类型的子对象组成。

调用该方法时,需要通过 dissolveParameter 参数指定一个融合参数(DissolveParameter3D)对象,该对象用于指定融合所需的参数,如融合类型、融合字段、融合容限、统计字段及统计类型、过滤表达式,以及是否处理融合字段为空的对象等。

参数:
sourceDataset - 指定的待融合的三维矢量数据集。目前支持三维线数据集。
targetDatasource - 指定的用于存储结果数据集的数据源。
targetDatasetName - 指定的结果数据集名称。
dissolveParameter - 指定的融合参数设置。
返回:
融合后的三维矢量数据集,是一个新的数据集。
从以下版本开始:
SuperMap iObjects Java 7.0.0

resample

public static boolean resample(DatasetVector datasetVector,
                               double tolerence)
对三维矢量数据集进行重采样,目前支持三维线数据集和网络数据集。

矢量数据重采样是按照一定规则剔除一些节点,以达到对数据进行简化的目的,以利于显示、处理或进一步的分析,如下图所示:

此方法采用“光栏法”进行重采样,该方法使用的重采样容限通过 tolerence 参数指定。有关“光栏法”,请参见 ResampleType.RTBEND 枚举成员的介绍。

注意,重采样处理将直接修改原数据,不会生成新的数据。

参数:
datasetVector - 指定的待重采样的三维矢量数据集。目前支持三维线数据集和网络数据集。
tolerence - 指定的重采样容限。单位为米。重采样距离可设置为大于 0 的浮点型数值,设置的重采样距离越大,采样结果数据越简化。
返回:
一个布尔值,指示重采样是否成功。如果成功,返回 true,否则返回 false。
从以下版本开始:
SuperMap iObjects Java 7.0.0

smooth

public static boolean smooth(DatasetVector datasetVector,
                             int smoothness)
对三维矢量数据集进行光滑,目前支持三维线数据集和网络数据集。

参数:
datasetVector - 指定的待光滑的三维矢量数据集。目前支持三维线数据集和网络数据集。
smoothness - 指定的光滑系数。有效范围为大于等于 2,设置为小于 2 的值会抛出异常。光滑系数越大,点串越光滑。建议取值范围为[2,10]。
返回:
一个布尔值,指示重采样是否成功。如果成功,返回 true,否则返回 false。
从以下版本开始:
SuperMap iObjects Java 7.0.0

interpolateShape

public static DatasetVector interpolateShape(DatasetGrid datasetGrid,
                                             DatasetVector datasetVector,
                                             Datasource targetDatasource,
                                             java.lang.String targetDatasetName,
                                             double sampleDistance,
                                             double zFactor,
                                             boolean isVerticesOnly)
基于栅格数据集将二维矢量数据集转为三维矢量数据集的插值方法。支持二维点数据集、二维线数据集和二维面数据集。

参数:
datasetGrid - 提供Z值的栅格数据集。
datasetVector - 指定的待插值的二维矢量数据集。仅支持二维点数据集,二维线数据集,二维面数据集。
targetDatasource - 指定的用于存储结果数据集的数据源。
targetDatasetName - 指定的结果数据集名称。
sampleDistance - 指定的采样距离即内插z值的间距。如果该值小于或等于0,该采样距离默认是栅格数据集的像元大小;如果该值大于0,采样距离就是该值的大小。该参数只对二维线数据集和二维面数据集有效,即只对线和面插点。
zFactor - 指定的Z因子。Z值将乘上的系数。
isVerticesOnly - 是否只对折点进行插值。true表示忽略采样距离选项只对已有的点进行插值,false表示以采样距离内插点然后进行插值。
返回:
插值后的三维矢量数据集,是一个新的数据集。

addSteppedListener

public static void addSteppedListener(SteppedListener l)
添加一个进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。
从以下版本开始:
SuperMap iObjects Java 7.0.0

removeSteppedListener

public static void removeSteppedListener(SteppedListener l)
移除一个进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。
从以下版本开始:
SuperMap iObjects Java 7.0.0