碎多边形合并,即将数据集中小于指定面积的多边形合并到相邻的多边形中。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static bool Eliminate(
	DatasetVector sourceDataset,
	double regionTolerance,
	double vertexTolerance,
	EliminateMode eliminateMode,
	bool isDeleteSingleRegion
)

参数

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

返回值

一个布尔值,如果合并成功返回 true,否则返回 false。

备注

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

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

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

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

注意:

  • 该方法适用于两个面具有公共边界的情况,处理后会把公共边界去除。
  • 进行碎多边形合并处理后,数据集内的对象数量可能减少。

请参见