类 SpatialMeasure
- java.lang.Object
-
- com.supermap.analyst.spatialstatistics.SpatialMeasure
-
public class SpatialMeasure extends Object
空间度量类。该类可通过度量一组数据的分布来计算各类用于表现分布特征的值,如数据的中心、方向等。空间度量用来计算的数据可以是点、线、面。对于点、线和面对象,在距离计算中会使用对象的质心。对象的质心为所有子对象的加权平均中心。点对象的加权项为1(即质心为自身),线对象的加权项是长度,而面对象的加权项是面积。
用户可以通过空间度量计算来解决以下问题:
1. 数据的中心在哪里?
2. 数据的分布呈什么形状和方向?
3. 数据是如何分散布局?
-
-
方法概要
所有方法 静态方法 具体方法 已过时的方法 限定符和类型 方法和说明 static void
addSteppedListener(SteppedListener l)
添加一个进度条事件(SteppedEvent
)的监听器。static DatasetVector
measureCentralElement(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。static DatasetVector
measureCentralElement(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的中心要素,返回结果矢量数据集。static DatasetVector
measureDirectional(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。static DatasetVector
measureDirectional(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的方向分布,返回结果矢量数据集。static DatasetVector
measureLinearDirectionalMean(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
static DatasetVector
measureLinearDirectionalMean(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算线数据集的方向平均值,并返回结果矢量数据集。static DatasetVector
measureMeanCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。static DatasetVector
measureMeanCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的平均中心,返回结果矢量数据集。static DatasetVector
measureMedianCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。static DatasetVector
measureMedianCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的中位数中心,返回结果矢量数据集。static DatasetVector
measureStandardDistance(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。static DatasetVector
measureStandardDistance(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的标准距离,返回结果矢量数据集。static void
removeSteppedListener(SteppedListener l)
移除一个进度条事件(SteppedEvent
)的监听器。
-
-
-
方法详细资料
-
measureMeanCenter
@Deprecated public static DatasetVector measureMeanCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。 此方法已废弃,请使用支持进度监听的新方法SpatialMeasure.measureMeanCenter(DatasetVector, Datasource, String, MeasureParameter, SteppedListener...)
替换。计算矢量数据的平均中心,返回结果矢量数据集。1. 平均中心是根据输入的所有对象质心的平均x和y坐标构造的点。
2. 平均中心的x和y坐标分别储存在结果矢量数据集中的SmX和SmY字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定平均中心所需的参数,如权重字段、分组字段、统计字段及统计类型等。- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。- 返回:
- 结果矢量数据集。
-
measureMeanCenter
public static DatasetVector measureMeanCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的平均中心,返回结果矢量数据集。1. 平均中心是根据输入的所有对象质心的平均x和y坐标构造的点。
2. 平均中心的x和y坐标分别储存在结果矢量数据集中的SmX和SmY字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定平均中心所需的参数,如权重字段、分组字段、统计字段及统计类型等。- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。listeners
- 用于接收进度条事件的监听器。- 返回:
- 结果矢量数据集。
- 示范代码:
- 以下代码示范了如何对矢量数据集计算平均中心,获取结果矢量数据集。
private DatasetVector meanCenter(DatasetVector sourceDataset, Datasource targetDatasource) { // 设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除 String targetDatasetName = "resultMeanCenter"; if (targetDatasource.getDatasets().contains(targetDatasetName)) { targetDatasource.getDatasets().delete(targetDatasetName); } // 设置空间度量参数 MeasureParameter measureParameter = new MeasureParameter(); measureParameter.setWeightFieldName(new String("Weight")); measureParameter.setGroupFieldName(new String("Group")); measureParameter.setStatisticsFieldNames(new String[] { "Max" }); measureParameter.setStatisticsTypes(new StatisticsType[] { StatisticsType.MAX }); // 调用平均中心方法,并获取结果矢量数据集 DatasetVector resultMeanCenter = SpatialMeasure.measureMeanCenter( sourceDataset, targetDatasource, targetDatasetName, measureParameter); return resultMeanCenter; }
-
measureMedianCenter
@Deprecated public static DatasetVector measureMedianCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。 此方法已废弃,请使用支持进度监听的新方法SpatialMeasure.measureMedianCenter(DatasetVector, Datasource, String, MeasureParameter, SteppedListener...)
替换。计算矢量数据的中位数中心,返回结果矢量数据集。1. 中位数中心是根据输入的所有对象质心,使用迭代算法找出到所有对象质心的欧式距离最小的点。
2. 中位数中心的x和y坐标分别储存在结果矢量数据集中的SmX和SmY字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 实际上,距所有对象质心的距离最小的点可能有多个,但中位数中心方法只会返回一个点。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定中位数中心所需的参数,如权重字段、分组字段、统计字段及统计类型等。5. 用于计算中位数中心的算法是由Kuhn,Harold W.和Robert E. Kuenne在1962年提出的迭代加权最小二乘法(Weiszfeld算法),之后由James E. Burt和Gerald M. Barber进一步概括。首先以平均中心(有权重,为加权)作为起算点,利用加权最小二乘法得到候选点,将候选点重新作为起算点代入计算得到新的候选点,迭代计算直到候选点到所有对象质心的欧式距离最小为止。
- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。- 返回:
- 结果矢量数据集。
-
measureMedianCenter
public static DatasetVector measureMedianCenter(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的中位数中心,返回结果矢量数据集。1. 中位数中心是根据输入的所有对象质心,使用迭代算法找出到所有对象质心的欧式距离最小的点。
2. 中位数中心的x和y坐标分别储存在结果矢量数据集中的SmX和SmY字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 实际上,距所有对象质心的距离最小的点可能有多个,但中位数中心方法只会返回一个点。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定中位数中心所需的参数,如权重字段、分组字段、统计字段及统计类型等。5. 用于计算中位数中心的算法是由Kuhn,Harold W.和Robert E. Kuenne在1962年提出的迭代加权最小二乘法(Weiszfeld算法),之后由James E. Burt和Gerald M. Barber进一步概括。首先以平均中心(有权重,为加权)作为起算点,利用加权最小二乘法得到候选点,将候选点重新作为起算点代入计算得到新的候选点,迭代计算直到候选点到所有对象质心的欧式距离最小为止。
- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。listeners
- 用于接收进度条事件的监听器。- 返回:
- 结果矢量数据集。
- 示范代码:
- 以下代码示范了如何对矢量数据集计算中位数中心,获取结果矢量数据集。
private DatasetVector medianCenter(DatasetVector sourceDataset, Datasource targetDatasource) { // 设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除 String targetDatasetName = "resultMedianCenter"; if (targetDatasource.getDatasets().contains(targetDatasetName)) { targetDatasource.getDatasets().delete(targetDatasetName); } // 设置空间度量参数 MeasureParameter measureParameter = new MeasureParameter(); measureParameter.setWeightFieldName(new String("Weight")); measureParameter.setGroupFieldName(new String("Group")); measureParameter.setStatisticsFieldNames(new String[] { "Max" }); measureParameter.setStatisticsTypes(new StatisticsType[] { StatisticsType.MAX }); // 调用中位数中心方法,并获取结果矢量数据集 DatasetVector resultMedianCenter = SpatialMeasure.measureMedianCenter( sourceDataset, targetDatasource, targetDatasetName, measureParameter); return resultMedianCenter; }
-
measureCentralElement
@Deprecated public static DatasetVector measureCentralElement(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。 此方法已废弃,请使用支持进度监听的新方法SpatialMeasure.measureCentralElement(DatasetVector, Datasource, String, MeasureParameter, SteppedListener...)
替换。计算矢量数据的中心要素,返回结果矢量数据集。1. 中心要素是与其他所有对象质心的累积距离最小,位于最中心的对象。
2. 如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 实际上,距其他所有对象质心的累积距离最小的中心要素可能会有多个,但中心要素方法只会输出SmID 字段值最小的对象。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定中心要素所需的参数,如权重字段、自身权重字段、分组字段、距离计算方法、统计字段及统计类型等。- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。- 返回:
- 结果矢量数据集。
-
measureCentralElement
public static DatasetVector measureCentralElement(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的中心要素,返回结果矢量数据集。1. 中心要素是与其他所有对象质心的累积距离最小,位于最中心的对象。
2. 如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 实际上,距其他所有对象质心的累积距离最小的中心要素可能会有多个,但中心要素方法只会输出SmID 字段值最小的对象。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定中心要素所需的参数,如权重字段、自身权重字段、分组字段、距离计算方法、统计字段及统计类型等。- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。listeners
- 用于接收进度条事件的监听器。- 返回:
- 结果矢量数据集。
- 示范代码:
- 以下代码示范了如何对矢量数据集计算中心要素,获取结果矢量数据集。
private DatasetVector centralElement(DatasetVector sourceDataset, Datasource targetDatasource) { // 设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除 String targetDatasetName = "resultCentralElement"; if (targetDatasource.getDatasets().contains(targetDatasetName)) { targetDatasource.getDatasets().delete(targetDatasetName); } // 设置空间度量参数 MeasureParameter measureParameter = new MeasureParameter(); measureParameter.setWeightFieldName(new String("Weight")); measureParameter.setGroupFieldName(new String("Group")); measureParameter.setSelfWeightFieldName(new String("SelfWeight")); measureParameter.setDistanceMethod(DistanceMethod.EUCLIDEAN); measureParameter.setStatisticsFieldNames(new String[] { "Max" }); measureParameter.setStatisticsTypes(new StatisticsType[] { StatisticsType.MAX }); // 调用中心要素方法,并获取结果矢量数据集 DatasetVector resultCentralElement = SpatialMeasure.measureCentralElement( sourceDataset, targetDatasource, targetDatasetName, measureParameter); return resultCentralElement; }
-
measureDirectional
@Deprecated public static DatasetVector measureDirectional(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。 此方法已废弃,请使用支持进度监听的新方法SpatialMeasure.measureDirectional(DatasetVector, Datasource, String, MeasureParameter, SteppedListener...)
替换。计算矢量数据的方向分布,返回结果矢量数据集。1. 方向分布是根据所有对象质心的平均中心(有权重,为加权)为圆点,计算x和y坐标的标准差为轴得到的标准差椭圆。
2. 标准差椭圆的圆心x和y坐标、两个标准距离(长半轴和短半轴)、椭圆的方向,分别储存在结果矢量数据集中的CircleCenterX、CircleCenterY、SemiMajorAxis、SemiMinorAxis、RotationAngle字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 椭圆的方向RotationAngle字段中的正值表示正椭圆(长半轴的方向为X轴方向, 短半轴的方向为Y轴方向))按逆时针旋转,负值表示正椭圆按顺时针旋转。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定方向分布所需的参数,如权重字段、分组字段、统计字段及统计类型等。5. 输出的椭圆大小有三个级别:Single(一个标准差)、Twice(二个标准差)和Triple(三个标准差),详细介绍请参见
EllipseSize
类。6. 用于计算方向分布的标准差椭圆算法是由D. Welty Lefever在1926年提出,用来度量数据的方向和分布。首先确定椭圆的圆心,即平均中心(有权重,为加权);然后确定椭圆的方向;最后确定长轴和短轴的长度。
- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。- 返回:
- 结果矢量数据集。
-
measureDirectional
public static DatasetVector measureDirectional(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的方向分布,返回结果矢量数据集。1. 方向分布是根据所有对象质心的平均中心(有权重,为加权)为圆点,计算x和y坐标的标准差为轴得到的标准差椭圆。
2. 标准差椭圆的圆心x和y坐标、两个标准距离(长半轴和短半轴)、椭圆的方向,分别储存在结果矢量数据集中的CircleCenterX、CircleCenterY、SemiMajorAxis、SemiMinorAxis、RotationAngle字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 椭圆的方向RotationAngle字段中的正值表示正椭圆(长半轴的方向为X轴方向, 短半轴的方向为Y轴方向))按逆时针旋转,负值表示正椭圆按顺时针旋转。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定方向分布所需的参数,如权重字段、分组字段、统计字段及统计类型等。5. 输出的椭圆大小有三个级别:Single(一个标准差)、Twice(二个标准差)和Triple(三个标准差),详细介绍请参见
EllipseSize
类。6. 用于计算方向分布的标准差椭圆算法是由D. Welty Lefever在1926年提出,用来度量数据的方向和分布。首先确定椭圆的圆心,即平均中心(有权重,为加权);然后确定椭圆的方向;最后确定长轴和短轴的长度。
- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。listeners
- 用于接收进度条事件的监听器。- 返回:
- 结果矢量数据集。
- 示范代码:
- 以下代码示范了如何对矢量数据集计算方向分布,获取结果矢量数据集。
private DatasetVector directional(DatasetVector sourceDataset, Datasource targetDatasource) { // 设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除 String targetDatasetName = "resultDirectional"; if (targetDatasource.getDatasets().contains(targetDatasetName)) { targetDatasource.getDatasets().delete(targetDatasetName); } // 设置空间度量参数 MeasureParameter measureParameter = new MeasureParameter(); measureParameter.setWeightFieldName(new String("Weight")); measureParameter.setGroupFieldName(new String("Group")); measureParameter.setStatisticsFieldNames(new String[] { "Max" }); measureParameter.setStatisticsTypes(new StatisticsType[] { StatisticsType.MAX }); // 调用方向分布方法,并获取结果矢量数据集 DatasetVector resultDirectional = SpatialMeasure.measureDirectional( sourceDataset, targetDatasource, targetDatasetName, measureParameter); return resultDirectional; }
-
measureStandardDistance
@Deprecated public static DatasetVector measureStandardDistance(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。 此方法已废弃,请使用支持进度监听的新方法SpatialMeasure.measureStandardDistance(DatasetVector, Datasource, String, MeasureParameter, SteppedListener...)
替换。计算矢量数据的标准距离,返回结果矢量数据集。1. 标准距离是根据所有对象质心的平均中心(有权重,为加权)为圆心,计算x和y坐标的标准距离为半径得到的圆。
2. 圆的圆心x和y坐标、标准距离(圆的半径),分别储存在结果矢量数据集中的CircleCenterX、CircleCenterY、StandardDistance字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定标准距离所需的参数,如权重字段、圆大小、分组字段、统计字段及统计类型等。4. 输出的圆大小有三个级别:Single(一个标准差)、Twice(二个标准差)和Triple(三个标准差),详细介绍请参见
EllipseSize
枚举类型。<
- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。
-
measureStandardDistance
public static DatasetVector measureStandardDistance(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算矢量数据的标准距离,返回结果矢量数据集。1. 标准距离是根据所有对象质心的平均中心(有权重,为加权)为圆心,计算x和y坐标的标准距离为半径得到的圆。
2. 圆的圆心x和y坐标、标准距离(圆的半径),分别储存在结果矢量数据集中的CircleCenterX、CircleCenterY、StandardDistance字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定标准距离所需的参数,如权重字段、圆大小、分组字段、统计字段及统计类型等。4. 输出的圆大小有三个级别:Single(一个标准差)、Twice(二个标准差)和Triple(三个标准差),详细介绍请参见
EllipseSize
枚举类型。<
- 参数:
sourceDatasetVector
- 指定的待计算的数据集。可以为点、线、面数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。listeners
- 用于接收进度条事件的监听器。
-
measureLinearDirectionalMean
@Deprecated public static DatasetVector measureLinearDirectionalMean(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter)
已过时。 此方法已废弃,请使用支持进度监听的新方法SpatialMeasure.measureLinearDirectionalMean(DatasetVector, Datasource, String, MeasureParameter, SteppedListener...)
。计算线数据集的方向平均值,并返回结果矢量数据集。1. 线性方向平均值是根据所有线对象的质心的平均中心点为其中心、长度等于所有输入线对象的平均长度、方位或方向为由所有输入线对象的起点和终点(每个线对象都只会使用起点和终点来确定方向)计算得到的平均方位或平均方向创建的线对象。
2. 线对象的平均中心x和y坐标、平均长度、罗盘角、方向平均值、圆方差,分别储存在结果矢量数据集中的AverageX、AverageY、AverageLength、CompassAngle、DirectionalMean、CircleVariance字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 线对象的罗盘角(CompassAngle)字段表示以正北方为基准方向按顺时针旋转;方向平均值(DirectionalMean)字段表示以正东方为基准方向按逆时针旋转;圆方差(CircleVariance)表示方向或方位偏离方向平均值的程度,如果输入线对象具有非常相似(或完全相同)的方向则该值会非常小,反之则相反。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定标准距离所需的参数,如权重字段、是否忽略终点和起点的方向、分组字段、统计字段及统计类型等。- 参数:
sourceDatasetVector
- 指定的待计算的数据集。为线数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。
-
measureLinearDirectionalMean
public static DatasetVector measureLinearDirectionalMean(DatasetVector sourceDatasetVector, Datasource targetDatasource, String targetDatasetName, MeasureParameter measureParameter, SteppedListener... listeners)
计算线数据集的方向平均值,并返回结果矢量数据集。1. 线性方向平均值是根据所有线对象的质心的平均中心点为其中心、长度等于所有输入线对象的平均长度、方位或方向为由所有输入线对象的起点和终点(每个线对象都只会使用起点和终点来确定方向)计算得到的平均方位或平均方向创建的线对象。
2. 线对象的平均中心x和y坐标、平均长度、罗盘角、方向平均值、圆方差,分别储存在结果矢量数据集中的AverageX、AverageY、AverageLength、CompassAngle、DirectionalMean、CircleVariance字段中。如果设置了分组字段,则结果矢量数据集将包含 “分组字段名_Group” 字段。
3. 线对象的罗盘角(CompassAngle)字段表示以正北方为基准方向按顺时针旋转;方向平均值(DirectionalMean)字段表示以正东方为基准方向按逆时针旋转;圆方差(CircleVariance)表示方向或方位偏离方向平均值的程度,如果输入线对象具有非常相似(或完全相同)的方向则该值会非常小,反之则相反。
4. 调用该方法时,需要通过 measureParameter 参数指定一个空间度量参数(
MeasureParameter
)对象,该对象用于指定标准距离所需的参数,如权重字段、是否忽略终点和起点的方向、分组字段、统计字段及统计类型等。- 参数:
sourceDatasetVector
- 指定的待计算的数据集。为线数据集。targetDatasource
- 指定的用于存储结果数据集的数据源。targetDatasetName
- 指定的结果数据集名称。measureParameter
- 指定的空间度量参数设置。listeners
- 用于接收进度条事件的监听器。
-
addSteppedListener
public static void addSteppedListener(SteppedListener l)
添加一个进度条事件(SteppedEvent
)的监听器。- 参数:
l
- 一个用于接收进度条事件的监听器。
-
removeSteppedListener
public static void removeSteppedListener(SteppedListener l)
移除一个进度条事件(SteppedEvent
)的监听器。- 参数:
l
- 一个用于接收进度条事件的监听器。
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.