com.supermap.realspace.spatialanalyst

类 Generalization3D



  • public class Generalization3D
    extends Object
    三维矢量制图综合类。该类提供三维矢量数据的融合、重采样和光滑等功能。
    从以下版本开始:
    SuperMap iObjects Java 7.0.0
    • 方法详细资料

      • dissolve

        @Deprecated
        public static DatasetVector dissolve(DatasetVector sourceDatasetVector,
                                                          Datasource targetDatasource,
                                                          String targetDatasetName,
                                                          DissolveParameter3D dissolveParameter)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 Generalization3D.dissolve(DatasetVector ,Datasource , String ,DissolveParameter3D , SteppedListener...) 替换。
        对三维矢量数据集进行融合处理,目前支持三维线数据集。

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

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

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

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

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

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

        参数:
        sourceDatasetVector - 指定的待融合的三维矢量数据集。目前支持三维线数据集。
        targetDatasource - 指定的用于存储结果数据集的数据源。
        targetDatasetName - 指定的结果数据集名称。
        dissolveParameter - 指定的融合参数设置。
        listeners - 用于接收进度条事件的监听器。
        返回:
        融合后的三维矢量数据集,是一个新的数据集。
        从以下版本开始:
        SuperMap iObjects Java 7.0.0
      • resample

        @Deprecated
        public static boolean resample(DatasetVector datasetVector,
                                                    double tolerance)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 Generalization3D.resample(DatasetVector , double , SteppedListener... ) 替换。
        对三维矢量数据集进行重采样,目前支持三维线数据集和网络数据集。

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

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

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

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

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

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

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

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

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

        @Deprecated
        public static boolean smooth(DatasetVector datasetVector,
                                                  int smoothness)
        已过时。 此方法已废弃,请使用支持进度监听的新方法 Generalization3D.smooth(DatasetVector , int , SteppedListener... ) 替换。
        对三维矢量数据集进行光滑,目前支持三维线数据集和网络数据集。
        • 光滑的目的
        • 当折线或多边形的边界的线段过多时,就可能影响对原始特征的描述,不利用进一步的处理或分析,或显示和打印效果不够理想,因此需要对数据简化。简化的方法一般有重采样(resample 方法)和光滑。光滑是通过增加节点的方式使用曲线和直线段来代替原始折线的方法。

          需要注意,对折线进行光滑后,其长度通常会变短,折线上线段的方向也会发生明显改变,但两个端点的相对位置不会变化。

        • 光滑方法与光滑系数的设置
        • 该方法采用 B 样条法对矢量数据集进行光滑。B 样条法是以一条通过折线中一些节点的 B 样条曲线代替原始折线来达到光滑的目的。B 样条曲线是贝塞尔曲线的一种扩展。如下图所示,B 样条曲线不必通过原线对象的所有节点。除经过的原折线上的一些点外,曲线上的其他点通过 B 样条函数拟合得出。

          通过 smoothness 参数所指定的光滑系数影响着光滑的程度,光滑系数越大,结果数据越光滑。光滑系数的建议取值范围为[2,10]。下图为光滑系数分别为 2、5 和 8 时对线光滑的效果。

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

        public static boolean smooth(DatasetVector datasetVector,
                                     int smoothness,
                                     SteppedListener... listeners)
        对三维矢量数据集进行光滑,目前支持三维线数据集和网络数据集。
        • 光滑的目的
        • 当折线或多边形的边界的线段过多时,就可能影响对原始特征的描述,不利用进一步的处理或分析,或显示和打印效果不够理想,因此需要对数据简化。简化的方法一般有重采样(resample 方法)和光滑。光滑是通过增加节点的方式使用曲线和直线段来代替原始折线的方法。

          需要注意,对折线进行光滑后,其长度通常会变短,折线上线段的方向也会发生明显改变,但两个端点的相对位置不会变化。

        • 光滑方法与光滑系数的设置
        • 该方法采用 B 样条法对矢量数据集进行光滑。B 样条法是以一条通过折线中一些节点的 B 样条曲线代替原始折线来达到光滑的目的。B 样条曲线是贝塞尔曲线的一种扩展。如下图所示,B 样条曲线不必通过原线对象的所有节点。除经过的原折线上的一些点外,曲线上的其他点通过 B 样条函数拟合得出。

          通过 smoothness 参数所指定的光滑系数影响着光滑的程度,光滑系数越大,结果数据越光滑。光滑系数的建议取值范围为[2,10]。下图为光滑系数分别为 2、5 和 8 时对线光滑的效果。

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

        @Deprecated
        public static DatasetVector interpolateShape(DatasetGrid datasetGrid,
                                                                  DatasetVector datasetVector,
                                                                  Datasource targetDatasource,
                                                                  String targetDatasetName,
                                                                  double sampleDistance,
                                                                  double zFactor,
                                                                  boolean isVerticesOnly)
        基于栅格数据集将二维矢量数据集转为三维矢量数据集的插值方法。支持二维点数据集、二维线数据集和二维面数据集。
        • 插值方法
        • 该插值方法为双线性内插法。双线性内插法通过查找插值点周围9个网格单元,选取最靠近插值点的4个网格邻近点并确定一个矩形,然后根据4个邻近点距内插点的距离作为权值,进行加权平均计算出新的栅格值。适用于表示某种现象分布、地形表面的连续数据,如 DEM、气温、降雨量分布、坡度等,这些数据本来就是通过采样点内插得到的连续表面。

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

        public static DatasetVector interpolateShape(DatasetGrid datasetGrid,
                                                     DatasetVector datasetVector,
                                                     Datasource targetDatasource,
                                                     String targetDatasetName,
                                                     double sampleDistance,
                                                     double zFactor,
                                                     boolean isVerticesOnly,
                                                     SteppedListener... listeners)
        基于栅格数据集将二维矢量数据集转为三维矢量数据集的插值方法。支持二维点数据集、二维线数据集和二维面数据集。
        • 插值方法
        • 该插值方法为双线性内插法。双线性内插法通过查找插值点周围9个网格单元,选取最靠近插值点的4个网格邻近点并确定一个矩形,然后根据4个邻近点距内插点的距离作为权值,进行加权平均计算出新的栅格值。适用于表示某种现象分布、地形表面的连续数据,如 DEM、气温、降雨量分布、坡度等,这些数据本来就是通过采样点内插得到的连续表面。

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

Copyright © 2021–2024 SuperMap. All rights reserved.