com.supermap.analyst.spatialanalyst
类 Generalization

java.lang.Object
  继承者 com.supermap.analyst.spatialanalyst.Generalization

public class Generalization
extends java.lang.Object

制图综合类。该类提供矢量数据融合、碎多边形合并、双线提取中心线、面提取中心线等制图综合功能。


方法摘要
static void addSteppedListener(SteppedListener l)
          添加一个进度条事件(SteppedEvent)的监听器。
static boolean aggregatePoints(DatasetVector pointDataset, double distance, Unit unit, int minPilePointCount, Datasource outDatasource, java.lang.String resultRegionDatasetName, java.lang.String resultClassFieldName)
          对点数据集进行聚类,使用密度聚类算法,返回聚类后的类别或同一簇构成的多边形。
static boolean aggregatePoints(DatasetVector pointDataset, int aggregateCount, java.lang.String weightFieldName, Datasource outDatasource, java.lang.String resultRegionDatasetName, java.lang.String resultClassFieldName)
          对点数据集进行聚类,返回是否成功
static DatasetVector aggregatePolygons(DatasetVector sourceDataset, Datasource targetDatasource, java.lang.String targetDatasetName, AggregatePolygonParameter param, SteppedListener... listeners)
          面聚合。
static GeoRegion[] autoCompletePolygon(DatasetVector regionDataset, Rectangle2D bounds, GeoLine geoLine)
          拓扑自动构面。
static DatasetVector createRandomPoints(DatasetVector sourceDatasetVector, RandomPointsParameter randomPointsParameter, Datasource targetDatasource, java.lang.String targetDatasetName)
          创建随机点。
static DatasetVector createStripMapPages(DatasetVector sourceDataset, DatasetVector barriersDataset, Datasource targetDatasource, java.lang.String outputDatasetName, double aLengthAlongTheLine, double aLengthPerpendicularToTheLine, double dDistanceFromFirstPointOfTheEdge, double dOverlapDistance, SteppedListener... listeners)
          创建带状分幅页面。
static DatasetVector createStripMapPages(DatasetVector sourceDataset, DatasetVector barriersDataset, Datasource targetDatasource, java.lang.String outputDatasetName, double aLengthAlongTheLine, double aLengthPerpendicularToTheLine, SteppedListener... listeners)
          创建带状分幅页面。
static DatasetVector createVectorPyramid(DatasetVector targetDataset, int nMinLevel, int nMaxLevel, int nStep, double weight, VectorPyramidMethod method, SteppedListener... listeners)
          创建矢量金字塔。
static DatasetVector dissolve(DatasetVector sourceDataset, Datasource targetDatasource, java.lang.String targetDatasetName, DissolveParameter dissolveParameter)
          矢量数据融合,返回结果矢量数据集。
static GeoLine[] dualLineToCenterLine(Recordset sourceRecordset, double maxWidth, double minWidth)
          根据给定的宽度从双线记录集中提取中心线。
static DatasetVector dualLineToCenterLine(Recordset sourceRecordset, double maxWidth, double minWidth, Datasource outputDatasource, java.lang.String outputDatasetName)
          根据给定的宽度从双线记录集中提取中心线。
static boolean edgeMatch(DatasetVector sourceDatasetVector, DatasetVector targetDatasetVector, EdgeMatchParameter edgeMatchParameter)
          图幅接边功能。
static boolean eliminate(DatasetVector sourceDataset, double regionTolerance, double vertexTolerance, EliminateMode eliminateMode, boolean isDeleteSingleRegion)
          碎多边形合并,即将数据集中小于指定面积的多边形合并到相邻的多边形中。
static boolean eliminate(DatasetVector sourceDatasetVector, java.lang.String[] groupFields, java.lang.String[] priorityFields, double regionTolerance, double vertexTolerance, EliminateMode eliminateMode, boolean isDeleteSingleRegion)
          碎多边形合并,即将数据集中小于指定面积的多边形合并到相邻的多边形中,支持优先级字段和分组字段。
static boolean eliminateSpecifiedRegions(DatasetVector sourceDatasetVector, int[] smallRegionIDs, int[] excludeRegionIDs, java.lang.String[] groupFields, java.lang.String[] priorityFields, boolean isMaxBorder, double vertexTolerance)
          碎多边形合并,需要指定被合并的多边形的 ID,支持优先级字段和分组字段。
static DatasetVector featureEnvelope(DatasetVector sourceDataset, java.lang.String targetDatasetName, Datasource targetDatasource)
          对象范围面
static DatasetVector featureEnvelope(DatasetVector sourceDataset, java.lang.String targetDatasetName, Datasource targetDatasource, boolean isSinglePart)
          对象范围面
static boolean integrate(DatasetVector sourceDatasetVector, double tolerance, Unit unit)
          已过时。  
static boolean isPrjCoordSysIdentical(PrjCoordSys sourcePrjCoordSys, PrjCoordSys targetPrjCoordSys)
          判断坐标系是否一致。
static boolean lineAttachRegion(GeoLine geoLine, GeoRegion geoRegion, java.util.List<GeoRegion> listRegionCompare, double toleranceLineAttachRegion, double toleranceRegionMerge, double toleranceChange, boolean isUsePreProcess)
          线靠面功能,此接口主要用于国土数据处理,例如,在国土数据处理中,对于扣除比例为0.5的情况,会把线靠到两个面的公共线上。
static DatasetVector pointsRegionalization(DatasetVector sourceDataset, Datasource targetDatasource, java.lang.String targetDatasetName, double dDistance, Unit distanceUnit, SteppedListener... listeners)
          点群区域化。
static GeoLine regionToCenterLine(GeoRegion sourceRegion)
          提取面对象的中心线,一般用于提取河流的中心线。
static GeoLine regionToCenterLine(GeoRegion sourceRegion, Point2D pointFrom, Point2D pointTo)
          根据给定的起点和终点提取面对象的中心线,一般用于提取河流的中心线。
static DatasetVector regionToCenterLine(Recordset regionRecordset, Datasource outputDatasource, java.lang.String outputDatasetName)
          提取面记录集的中心线,一般用于提取河流的中心线。
static DatasetVector regularizeBuildingFootprint(DatasetVector sourceDataset, Datasource targetDatasource, java.lang.String targetDatasetName, RegularizeParameter param, boolean isAttributeRetained)
          建筑物规则化。
static void removeSteppedListener(SteppedListener l)
          移除一个进度条事件(SteppedEvent)的监听器。
static DatasetVector vectorResample(DatasetVector srcDataset, ResampleInformation resampleInformation, Datasource targetDatasource, java.lang.String targetDatasetName, SteppedListener... listeners)
          矢量重采样。
 
从类 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,
                                     DissolveParameter dissolveParameter)
矢量数据融合,返回结果矢量数据集。

融合是指将融合字段值相同的对象合并为一个简单对象或复杂对象。适用于线对象和面对象。子对象是构成简单对象和复杂对象的基本对象。简单对象由一个子对象组成,即简单对象本身;复杂对象由两个或两个以上相同类型的子对象组成。

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

矢量数据的融合有三种方式:ONLYMULTIPART(组合)、SINGLE(融合)和 MULTIPART(融合后组合),详细介绍请参见 DissolveType 类。

参数:
sourceDataset - 指定的待融合的矢量数据集。必须为线数据集或面数据集。
targetDatasource - 指定的用于存储结构数据集的数据源。
targetDatasetName - 指定的结果数据集的名称。
dissolveParameter - 指定的融合参数。
返回:
融合结果数据集。
抛出:
java.lang.IllegalArgumentException - 如果 sourceDataset 参数指定的数据集类型不为线或面

eliminate

public static boolean eliminate(DatasetVector sourceDataset,
                                double regionTolerance,
                                double vertexTolerance,
                                EliminateMode eliminateMode,
                                boolean isDeleteSingleRegion)
碎多边形合并,即将数据集中小于指定面积的多边形合并到相邻的多边形中。

在数据制作和处理过程中,或对不精确的数据进行叠加后,都可能产生一些细碎而无用的多边形,称为碎多边形。可以通过“碎多边形合并”功能将这些细碎多边形合并到相邻的多边形中,或删除孤立的碎多边形(没有与其他多边形相交或者相切的多边形),以达到简化数据的目的。

一般面积远远小于数据集中其他对象的多边形才被认为是“碎多边形”,通常是同一数据集中最大面积的百万分之一到万分之一间,但可以依据实际研究的需求来设置最小多边形容限。如下图所示的数据中,在较大的多边形的边界上,有很多无用的碎多边形。

下图是对该数据进行“碎多边形合并”处理后的结果,与上图对比可以看出,碎多边形都被合并到了相邻的较大的多边形中。

对于面积小于指定的最小多边形容限的孤立多边形,如果将该方法的 isDeleteSingleRegion 参数设置为 true,将会删除这些孤立的碎多边形,如下图所示。

注意:

参数:
sourceDataset - 指定的待进行碎多边形合并的数据集。只支持矢量二维面数据集,指定其他类型的数据集会抛出异常。
regionTolerance - 指定的最小多边形容限。单位与系统计算的面积(SMAREA 字段)的单位一致。将 SMAREA 字段的值与该容限值对比,小于该值的多边形将被消除。取值范围为大于等于0,指定为小于0的值会抛出异常。
vertexTolerance - 指定的节点容限。单位与进行碎多边形合并的数据集单位相同。若两个节点之间的距离小于此容限值,则合并过程中会自动将这两个节点合并为一个节点。取值范围大于等于0,指定为小于0的值会抛出异常。
eliminateMode - 指定的碎多边形合并方式。目前仅支持“按面积合并”(EliminateMode.ELIMINATE_BY_AREA)方式,即将碎多边形合并到与其相邻的具有最大面积的多边形中。
isDeleteSingleRegion - 指定是否删除孤立的小多边形。如果为 true 会删除孤立的小多边形,否则不删除。
返回:
一个布尔值,如果合并成功返回 true,否则返回 false。

eliminate

public static boolean eliminate(DatasetVector sourceDatasetVector,
                                java.lang.String[] groupFields,
                                java.lang.String[] priorityFields,
                                double regionTolerance,
                                double vertexTolerance,
                                EliminateMode eliminateMode,
                                boolean isDeleteSingleRegion)
碎多边形合并,即将数据集中小于指定面积的多边形合并到相邻的多边形中,支持优先级字段和分组字段。

优先级字段使用说明:

如图为例,用户指定了 A、B、C 三个优先级字段:

参数:
sourceDatasetVector - 待进行碎多边形合并的矢量面数据集。
groupFields - 分组字段,字段值相同的多边形才可能进行合并。
priorityFields - 合并对象的优先级字段,当分组字段不为空时有效。用户可以指定多个优先级字段或不指定。
regionTolerance - 指定的最小多边形容限。单位与系统计算的面积(SMAREA 字段)的单位一致。将 SMAREA 字段的值与该容限值对比,小于该值的多边形将被消除。取值范围为大于等于0,指定为小于0的值会抛出异常。
vertexTolerance - 指定的节点容限。单位与进行碎多边形合并的数据集单位相同。若两个节点之间的距离小于此容限值,则合并过程中会自动将这两个节点合并为一个节点。取值范围大于等于0,指定为小于0的值会抛出异常。
eliminateMode - 指定的碎多边形合并方式。目前仅支持“按面积合并”(EliminateMode.ELIMINATE_BY_AREA)方式,即将碎多边形合并到与其相邻的具有最大面积的多边形中。
isDeleteSingleRegion - 指定是否删除孤立的小多边形。如果为 true 会删除孤立的小多边形,否则不删除。
返回:
一个布尔值,如果合并成功返回 true,否则返回 false。

eliminateSpecifiedRegions

public static boolean eliminateSpecifiedRegions(DatasetVector sourceDatasetVector,
                                                int[] smallRegionIDs,
                                                int[] excludeRegionIDs,
                                                java.lang.String[] groupFields,
                                                java.lang.String[] priorityFields,
                                                boolean isMaxBorder,
                                                double vertexTolerance)
碎多边形合并,需要指定被合并的多边形的 ID,支持优先级字段和分组字段。

优先级字段使用说明:

如图为例,用户指定了 A、B、C 三个优先级字段:

参数:
sourceDatasetVector - 待进行碎多边形合并的矢量面数据集。
smallRegionIDs - 指定被合并的小多边形的 ID,指定的对象如果找到符合要求的临近对象,则会被合并到临近对象中,小多边形会被删除。
excludeRegionIDs - 指定要排除的多边形的ID,即不参与运算的对象 ID。
groupFields - 分组字段,字段值相同的多边形才可能进行合并。
priorityFields - 合并对象的优先级字段,当分组字段不为空时有效。用户可以指定多个优先级字段或不指定。
isMaxBorder - 设置合并对象时是否以最大边界方式合并,如果为 true,则指定的小多边形会被合并到临近的公共边界最长的多边形上,否则,则会被合并到临近的面积最大的多边形上。
vertexTolerance - 指定的节点容限。单位与进行碎多边形合并的数据集单位相同。若两个节点之间的距离小于此容限值,则合并过程中会自动将这两个节点合并为一个节点。取值范围大于等于0,指定为小于0的值会抛出异常。
返回:
一个布尔值,如果合并成功返回 true,否则返回 false。

dualLineToCenterLine

public static DatasetVector dualLineToCenterLine(Recordset sourceRecordset,
                                                 double maxWidth,
                                                 double minWidth,
                                                 Datasource outputDatasource,
                                                 java.lang.String outputDatasetName)
根据给定的宽度从双线记录集中提取中心线。

该功能一般用于提取双线道路或河流的中心线。双线要求连续且平行或基本平行,提取效果如下图。

注意:

  1. 双线一般为双线道路或双线河流,可以是线数据,也可以是面数据。
  2. maxWidth 和 minWidth 参数用于指定记录集中双线的最大宽度和最小宽度,用于提取最小和最大宽度之间的双线的中心线。小于最小宽度、大于最大宽度部分的双线不提取中心线,且大于最大宽度的双线保留,小于最小宽度的双线丢弃。
  3. 对于双线道路或双线河流中比较复杂的交叉口,如五叉六叉,或者双线的最大宽度和最小宽度相差较大的情形,提取的结果可能不理想。

参数:
sourceRecordset - 指定的双线记录集。要求记录集所属的数据集类型为线或者面。
maxWidth - 指定的双线的最大宽度。要求为大于 0 的值。单位与双线记录集所属的数据集相同。
minWidth - 指定的双线的最小宽度。要求为大于或等于 0 的值。单位与双线记录集所属的数据集相同。
outputDatasource - 指定的用于存储结果中心线数据集的数据源。
outputDatasetName - 指定的结果中心线数据集的名称。
返回:
结果中心线数据集,是一个线数据集。
抛出:
java.lang.IllegalArgumentException - 如果 maxWidth 小于或等于 0,或 minWidth 小于 0

dualLineToCenterLine

public static GeoLine[] dualLineToCenterLine(Recordset sourceRecordset,
                                             double maxWidth,
                                             double minWidth)
根据给定的宽度从双线记录集中提取中心线。

参数:
sourceRecordset - 指定的双线记录集。要求记录集所属的数据集类型为线或者面。
maxWidth - 指定的双线的最大宽度。要求为大于 0 的值。单位与双线记录集所属的数据集相同。
minWidth - 指定的双线的最小宽度。要求为大于或等于 0 的值。单位与双线记录集所属的数据集相同。
返回:
结果中心线对象。

regionToCenterLine

public static DatasetVector regionToCenterLine(Recordset regionRecordset,
                                               Datasource outputDatasource,
                                               java.lang.String outputDatasetName)
提取面记录集的中心线,一般用于提取河流的中心线。

该方法提取面记录集中每一个面对象的中心线。有关面提取中心线的介绍,请参阅 regionToCeterLine 方法。

参数:
regionRecordset - 指定的待提取中心线的面记录集。
outputDatasource - 指定的用于存储结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
返回:
提取的中心线数据集,是一个二维线数据集。

regionToCenterLine

public static GeoLine regionToCenterLine(GeoRegion sourceRegion)
提取面对象的中心线,一般用于提取河流的中心线。

该方法用于提取面对象的中心线。如果面包含岛洞,提取时会绕过岛洞,采用最短路径绕过。如下图。

如果面对象不是简单的长条形,而是具有分叉结构,则提取的中心线是最长的一段。如下图所示。

如果提取的不是期望的中心线,可以使用另一重载方法 regionToCenterLine 指定起点和终点来提取。

参数:
sourceRegion - 指定的待提取中心线的面对象。
返回:
提取的中心线,是一个二维线对象。

regionToCenterLine

public static GeoLine regionToCenterLine(GeoRegion sourceRegion,
                                         Point2D pointFrom,
                                         Point2D pointTo)
根据给定的起点和终点提取面对象的中心线,一般用于提取河流的中心线。

该功能一般用于提取河流面对象的中心线,尤其是河流干流的中心线,并且可以指定提取的起点和终点。如果面包含岛洞,提取时会绕过岛洞,采用的是最短路径绕过。如下图。

fromPoint 参数和 toPoint 参数所指定起点和终点,是作为提取的参考点,也就是说,系统提取的中心线可能不会严格从指定的起点出发,到指定的终点结束。系统一般会在指定的起点和终点的附近,找到一个较近的点作为提取的起点或终点。

注意:

  1. 如果将起点和终点指定为相同的点,即等同于不指定提取的起点和终点,则提取的是面对象的最长的一条中心线。
  2. 如果指定的起点或终点在面对象的外面,则提取失败。

参数:
sourceRegion - 指定的待提取中心线的面对象。
pointFrom - 指定的提取中心线的起点。
pointTo - 指定的提取中心线的终点。
返回:
提取的中心线,是一个二维线对象。

addSteppedListener

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

参数:
l - 一个用于接收进度条事件的监听器。

removeSteppedListener

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

参数:
l - 一个用于接收进度条事件的监听器。

autoCompletePolygon

public static GeoRegion[] autoCompletePolygon(DatasetVector regionDataset,
                                              Rectangle2D bounds,
                                              GeoLine geoLine)
拓扑自动构面。

该功能用给定的范围bounds对参考面数据集regionDataset进行范围查询,构成结果面的所有参考面对象都必须在bounds范围,如果最后结果面所需的参考面不在bounds范围,将会导致结果面生成失败。

bounds范围为空时取参考面数据集的范围。

自动完成面对象所需的线对象可以不闭合。

参数:
regionDataset - 参考面数据集。
bounds - 计算范围。
geoLine - 自动完成面对象所需的线对象。
返回:
返回结果对象数组,失败返回null。

aggregatePoints

public static boolean aggregatePoints(DatasetVector pointDataset,
                                      double distance,
                                      Unit unit,
                                      int minPilePointCount,
                                      Datasource outDatasource,
                                      java.lang.String resultRegionDatasetName,
                                      java.lang.String resultClassFieldName)
对点数据集进行聚类,使用密度聚类算法,返回聚类后的类别或同一簇构成的多边形。

对点集合进行空间位置的聚类,使用密度聚类方法 DBSCAN,它能将具有足够高密度的区域划分为簇,并可以在带有噪声的空间数据中发现任意形状的聚类。它定义簇为密度相连的点的最大集合。DBSCAN 使用阈值 e 和 MinPts 来控制簇的生成。其中,给定对象半径 e 内的区域称为该对象的 e一邻域。如果一个对象的 e一邻域至少包含最小数目 MinPtS 个对象,则称该对象为核心对象。给定一个对象集合 D,如果 P 是在 Q 的 e一邻域内,而 Q 是一个核心对象,我们说对象 P 从对象 Q 出发是直接密度可达的。DBSCAN 通过检查数据里中每个点的 e-领域来寻找聚类,如果一个点 P 的 e-领域包含多于 MinPts 个点,则创建一个以 P 作为核心对象的新簇,然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象并加入该簇,直到没有新的点可以被添加。

参数:
pointDataset - 输入的点数据集。
distance - 密度聚类半径。
unit - 密度聚类半径的单位。
minPilePointCount - 密度聚类点数目阈值,必须大于等于2。阈值越大表示能聚类为一簇的条件越苛刻。推荐值为4。
outDatasource - 结果面数据集所在的数据源。如果resultRegionDatasetName参数不为空,则outDatasource必须有效。
resultRegionDatasetName - 结果面数据集名称。如果此参数有效,则会将点对象聚集成面对象;如果为null,则不生成面数据集。此参数与resultClassFieldName必须至少有一个有效,不能同时无效。
resultClassFieldName - 点数据集 pointDataset 中用于保存密度聚类的结果聚类类别字段,如果不为null,则必须是点数据集中存在的合法的字段。如果此参数有效,则会将聚类类别保存在此字段中。此参数和resultRegionDatasetName必须至少有一个有效,不能同时无效。
返回:
一个布尔值,true表示聚类成功,false表示聚类失败。
从以下版本开始:
SuperMap iObject Java 7.2.0

aggregatePoints

public static boolean aggregatePoints(DatasetVector pointDataset,
                                      int aggregateCount,
                                      java.lang.String weightFieldName,
                                      Datasource outDatasource,
                                      java.lang.String resultRegionDatasetName,
                                      java.lang.String resultClassFieldName)
对点数据集进行聚类,返回是否成功

参数:
pointDataset -
aggregateCount -
weightFieldName -
outDatasource -
resultRegionDatasetName -
resultClassFieldName -
返回:
一个布尔值,true表示聚类成功,false表示聚类失败。

edgeMatch

public static boolean edgeMatch(DatasetVector sourceDatasetVector,
                                DatasetVector targetDatasetVector,
                                EdgeMatchParameter edgeMatchParameter)
图幅接边功能。

该功能对两个二维线数据集进行自动接边。

调用该方法时,需要通过 edgeMatchParameter 指定接边参数(EdgeMatchParameter)对象,该对象用于指定接边所需的参数,如接边模式、接边容限、接边线等。

参数:
sourceDatasetVector - 接边源数据集。只能是二维线数据集。
targetDatasetVector - 接边目标数据。只能是二维线数据集,与接边源数据有相同的坐标系。
edgeMatchParameter - 接边参数类。
返回:
接边是否成功。

lineAttachRegion

public static boolean lineAttachRegion(GeoLine geoLine,
                                       GeoRegion geoRegion,
                                       java.util.List<GeoRegion> listRegionCompare,
                                       double toleranceLineAttachRegion,
                                       double toleranceRegionMerge,
                                       double toleranceChange,
                                       boolean isUsePreProcess)
线靠面功能,此接口主要用于国土数据处理,例如,在国土数据处理中,对于扣除比例为0.5的情况,会把线靠到两个面的公共线上。对于扣除比例为1的情况,会把线靠到公共边线或者是面的单独线上,但不会跨越多个图斑。

参数:
geoLine - 要处理的线对象。
geoRegion - 要处理的面对象。例如在国土数据处理中,对于扣除比例为0.5的情况,传入要靠的两个面对象其中一个,对于扣除比例为1的情况,传入要靠的面对象。
listRegionCompare - 要比较的面对象,外部需要传入一个链表对象。例如,国土数据处理中,对于扣除比例为0.5的情况,这个数组里只包含一个面对象,就是要靠的两个面对象的另外一个,对于扣除比例为1的情况,传入要靠的面对象周围的对象数组。
toleranceLineAttachRegion - 指的是线靠面的时候,线的端点捕捉到节点的容限。若线的端点到节点的容限小于toleranceLineAttachRegion会直接把线的端点捕捉到面的节点上,否则会把线的端点捕捉到面的线段上,并且在面上插入垂足。若不存在这样最近的垂足,则还是会捕捉到面的节点上。
toleranceRegionMerge - 指的是面之间插入节点的容限,以及面和面之间寻找重复线的容限。
toleranceChange - 指的是如果新替换的线和原来的线之间的极大距离大于给定的容限,则函数返回FALSE。
isUsePreProcess - 指的是是否进行数据预处理,这个一般要设置为true,除非是对自己的数据非常有信心。
返回:
成功返回true,否则,返回false。

integrate

public static boolean integrate(DatasetVector sourceDatasetVector,
                                double tolerance,
                                Unit unit)
已过时。 

整合, 将容限范围内的节点捕捉在一起。

整合接口与拓扑预处理节点捕捉相同,会将捕捉在一起的节点修改为同样的二维坐标。详情请参阅拓扑预处理节点和节点捕捉 (TopologyPreprocessOptions.setVertexesSnapped())。

节点容限较大会导致要素重叠或导致面和线对象被删除,还可能导致不被期望移动的节点发生移动。所以,容限值应该尽量小。

参数:
sourceDatasetVector - 指定的待整合的数据集。可以为点、线、面数据集。
tolerance - 指定的节点容限。
unit - 指定的节点容限单位。
返回:
整合成功返回true,否则为false。

featureEnvelope

public static DatasetVector featureEnvelope(DatasetVector sourceDataset,
                                            java.lang.String targetDatasetName,
                                            Datasource targetDatasource,
                                            boolean isSinglePart)
对象范围面

参数:
sourceDataset - 待分析的数据集,仅支持线数据集和面数据集。不支持点数据集因为点是没有范围的。
targetDatasetName - 结果数据集名称。
targetDatasource - 结果数据源。
isSinglePart - 有组合线或者组合面时,是否拆分子对象。默认为true,拆分子对象。
返回:
结果数据集,返回每个对象的范围面。结果数据集中新增了字段"ORIG_FID"用于保存输入对象的ID值。

featureEnvelope

public static DatasetVector featureEnvelope(DatasetVector sourceDataset,
                                            java.lang.String targetDatasetName,
                                            Datasource targetDatasource)
对象范围面

参数:
sourceDataset - 待分析的数据集,仅支持线数据集和面数据集。不支持点数据集因为点是没有范围的。
targetDatasetName - 结果数据集名称。
targetDatasource - 结果数据源。
返回:
结果数据集,返回每个对象的范围面。结果数据集中新增了字段"ORIG_FID"用于保存输入对象的ID值。

isPrjCoordSysIdentical

public static boolean isPrjCoordSysIdentical(PrjCoordSys sourcePrjCoordSys,
                                             PrjCoordSys targetPrjCoordSys)
判断坐标系是否一致。

参数:
sourcePrjCoordSys - 源投影坐标系。
targetPrjCoordSys - 目标投影坐标系。
返回:
坐标系一致返回true,否则为false。

createRandomPoints

public static DatasetVector createRandomPoints(DatasetVector sourceDatasetVector,
                                               RandomPointsParameter randomPointsParameter,
                                               Datasource targetDatasource,
                                               java.lang.String targetDatasetName)
创建随机点。

创建指定数量的随机点要素。可以在指定的点要素上、线要素沿线和面要素内生成随机点。例如在制作精细化地图的过程中,需要标注沿道路线规整排列的树木,以及片状密林中不规则分布的树木 。

<

参数:
sourceDatasetVector - 源数据集,支持点、线、面数据集。
randomPointsParameter - 随机点参数设置。见RandomPointsParameter
targetDatasource - 结果数据源。
targetDatasetName - 结果数据集名称。
返回:
随机点结果数据集。

regularizeBuildingFootprint

public static DatasetVector regularizeBuildingFootprint(DatasetVector sourceDataset,
                                                        Datasource targetDatasource,
                                                        java.lang.String targetDatasetName,
                                                        RegularizeParameter param,
                                                        boolean isAttributeRetained)
建筑物规则化。

用于消除建筑物范围几何中不规整的边界及细节,来对建筑物形状进行规则化。

参数:
sourceDataset - 待计算的矢量数据集,必须为面数据集。
targetDatasource - 结果数据源。
targetDatasetName - 结果数据集名称。
param - 规则化参数。
isAttributeRetained - 是否保存原始字段。
返回:
结果数据集,返回每个对象的范围面。结果数据集中新增了字段"status"用于表示要素是否进行了规则化,0表示未进行规则化(可能因为容限设置过小或源数据本身有错误),1表示该要素进行了规则化。

aggregatePolygons

public static DatasetVector aggregatePolygons(DatasetVector sourceDataset,
                                              Datasource targetDatasource,
                                              java.lang.String targetDatasetName,
                                              AggregatePolygonParameter param,
                                              SteppedListener... listeners)
面聚合。

面聚合是将指定距离内的面要素融合为一个新的面要素,得到聚合后的面状要素数据集。

常用应用场景如需要得到农村居民地的聚集程度,一般需要连片度这样的指标去判定,连片度是指一定范围内的地块或者房屋聚合成一个图斑,如建设用地的地块聚合距离100米,则会将所有距离范围内的都聚合起来。

参数:
sourceDataset - 待计算的矢量数据集,必须为面数据集。
targetDatasource - 结果数据源。
targetDatasetName - 结果数据集名称。
param - 面聚合参数。
listeners - 用于接收进度条事件的监听器。
返回:
结果面数据集。

pointsRegionalization

public static DatasetVector pointsRegionalization(DatasetVector sourceDataset,
                                                  Datasource targetDatasource,
                                                  java.lang.String targetDatasetName,
                                                  double dDistance,
                                                  Unit distanceUnit,
                                                  SteppedListener... listeners)
点群区域化。

点群区域化是指根据聚集点群(不小于3个点)所覆盖的区域得到面状要素数据集,是制图综合中的常用功能。

参数:
sourceDataset - 待计算的矢量数据集,必须为点数据集。
targetDatasource - 结果数据源。
targetDatasetName - 结果面数据集的名称。
dDistance - 聚合距离,即两个点要素需要在指定聚合距离内才会发生聚合,取值范围大于0。
distanceUnit - 聚合距离的单位。当数据为经纬度坐标时,不支持使用平面坐标单位(米,千米等),必须使用地理坐标单位(度、分、秒等)。
listeners - 用于接收进度条事件的监听器。
返回:
结果数据集

createStripMapPages

public static DatasetVector createStripMapPages(DatasetVector sourceDataset,
                                                DatasetVector barriersDataset,
                                                Datasource targetDatasource,
                                                java.lang.String outputDatasetName,
                                                double aLengthAlongTheLine,
                                                double aLengthPerpendicularToTheLine,
                                                SteppedListener... listeners)
创建带状分幅页面。

创建带状分幅页面是指沿着所给的线状要素,生成特定长宽的一系列连续的外接矩形面。这些矩形面可根据线状要素定义为带状地图的分幅页面,在线性工程(道路网、电力网、石油管网、河流线)中应用较多。

需要注意:生成的结果分幅页面走向与源矢量线数据的节点走向一致。

参数:
sourceDataset - 待计算的源矢量数据集,必须为线数据集
barriersDataset - 障碍数据集,即图幅中的设计分段点(例如行政边界),生成的矩形面遇到障碍时会被截断,再重新开始计算。支持类型为点、线、面,坐标应与源数据集保持一致。
targetDatasource - 结果数据源
outputDatasetName - 结果面数据集的名称
aLengthAlongTheLine - 矩形页面的长度,即生成矩形页面的沿线长度,必须大于0,单位与源数据集单位一致,当源数据集为平面(投影)坐标系时数值单位默认为米,为地理(经纬度)坐标系时数值单位默认为度。
aLengthPerpendicularToTheLine - 矩形页面的宽度,即生成矩形页面垂直于线的长度,必须大于0,单位与源数据集单位一致,当源数据集为平面(投影)坐标系时数值单位默认为米,为地理(经纬度)坐标系时数值单位默认为度。
listeners - 用于接收进度条事件的监听器
返回:
结果矩形面数据集。结果属性表中新生成的字段:“ObjectID” 表示源数据集的SmID,“PageNumber”表示生成的结果矩形集合按照线走向的顺序(从1开始)。“Angle”表示结果分幅矩形页面的角度( 从正东方向按逆时针方向计算)。

createStripMapPages

public static DatasetVector createStripMapPages(DatasetVector sourceDataset,
                                                DatasetVector barriersDataset,
                                                Datasource targetDatasource,
                                                java.lang.String outputDatasetName,
                                                double aLengthAlongTheLine,
                                                double aLengthPerpendicularToTheLine,
                                                double dDistanceFromFirstPointOfTheEdge,
                                                double dOverlapDistance,
                                                SteppedListener... listeners)
创建带状分幅页面。

创建带状分幅页面是指沿着所给的线状要素,生成特定长宽的一系列连续的外接矩形面。这些矩形面可根据线状要素定义为带状地图的分幅页面,在线性工程(道路网、电力网、石油管网、河流线)中应用较多。

需要注意:生成的结果分幅页面走向与源矢量线数据的节点走向一致。

参数:
sourceDataset - 待计算的源矢量数据集,必须为线数据集
barriersDataset - 障碍数据集,即图幅中的设计分段点(例如行政边界),生成的矩形面遇到障碍时会被截断,再重新开始计算。支持类型为点、线、面,坐标应与源数据集保持一致。
targetDatasource - 结果数据源
outputDatasetName - 结果面数据集的名称
aLengthAlongTheLine - 矩形页面的长度,即生成矩形页面的沿线长度,必须大于等于0,单位与源数据集单位一致,当源数据集为平面(投影)坐标系时数值单位默认为米,为地理(经纬度)坐标系时数值单位默认为度。当该值为0时内部会根据不同坐标系给定一个值,投影坐标下为1500米,地理坐标下为0.015度。
aLengthPerpendicularToTheLine - 矩形页面的宽度,即生成矩形页面垂直于线的长度,必须大于等于0,单位与源数据集单位一致,当源数据集为平面(投影)坐标系时数值单位默认为米,为地理(经纬度)坐标系时数值单位默认为度。当该值为0时内部会根据不同坐标系给定一个值,投影坐标下为1000米,地理坐标下为0.01度。
dDistanceFromFirstPointOfTheEdge - 起点距离,即起始分幅页面与线数据集起点的距离,默认值为 0,单位与数据集单位一致。
dOverlapDistance - 重叠距离,即相邻两个分幅页面之间重叠的距离,默认值为 0,与数据集单位保持一致。注意,重叠距离必须小于矩形页面长度的一半。
listeners - 用于接收进度条事件的监听器
返回:
结果矩形面数据集。结果属性表中新生成的字段:“ObjectID” 表示源数据集的SmID,“PageNumber”表示生成的结果矩形集合按照线走向的顺序(从1开始)。“Angle”表示结果分幅矩形页面的角度( 从正东方向按逆时针方向计算)。

vectorResample

public static DatasetVector vectorResample(DatasetVector srcDataset,
                                           ResampleInformation resampleInformation,
                                           Datasource targetDatasource,
                                           java.lang.String targetDatasetName,
                                           SteppedListener... listeners)
矢量重采样。 矢量数据重采样是按照一定规则剔除一些节点,以达到对数据进行简化的目的。说明参考resample

参数:
srcDataset - 待计算的源矢量数据集,支持线、面数据集。
resampleInformation - 矢量重采样的参数类
targetDatasource - 结果数据源
targetDatasetName - 结果面数据集的名称
listeners - 用于接收进度条事件的监听器
返回:
重采样后的结果矢量数据集。

createVectorPyramid

public static DatasetVector createVectorPyramid(DatasetVector targetDataset,
                                                int nMinLevel,
                                                int nMaxLevel,
                                                int nStep,
                                                double weight,
                                                VectorPyramidMethod method,
                                                SteppedListener... listeners)
创建矢量金字塔。

参数:
targetDataset - 创建矢量金字塔的数据集
nMinLevel - 金字塔的最小层级
nMaxLevel - 金字塔的最大层级
nStep - 相邻两层级之间的差值
weight - 权重,用于调节精细度
method - 创建矢量金字塔的方式
listeners - 用于接收进度条事件的监听器
返回: