使用点对象打断线对象,或使用线、面对象对线对象进行分割。

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

语法

C#
public static GeoLine[] SplitLine(
	GeoLine sourceLine,
	Geometry splitGeometry,
	double tolerance
)

参数

sourceLine
Type: SuperMap.Data..::.GeoLine
待分割(打断)的线对象。
splitGeometry
Type: SuperMap.Data..::.Geometry
用于分割(打断)线对象的对象,支持点、线、面对象。
tolerance
Type: System..::.Double
指定的容限,用于判断点对象是否在线上,若点到线的垂足距离大于该容限值,则认为用于打断的点对象无效,从而不执行打断。

返回值

打断后的线对象数组。

备注

该方法可用于使用点、线、面对象对线对象进行打断或分割。下面以一个简单线对象对这三种情况进行说明。

  • 点对象打断线对象

    使用点对象对线对象进行打断,在点对象位置原线对象会被打断为两个线对象。如下图所示,使用点(黑色)对线(蓝色)进行打断,结果为两个线对象(红色线和绿色线)。

  • 线对象分割线对象

    这种情况分割线(用于分割的线对象)会将操作线(被分割的线对象)分割为两个线对象。分割线为一条折线,可以是只包含两个端点的线段,也可以是包含多个节点的折线。

    当分割线为线段时,操作线将会在其与分割线的交点处被分割为两个线对象。如下图所示,图中黑色线为分割线,分割后原线对象被分为两个线对象(红色线和绿色线)。

    当分割线为折线时,可能与操作线有多个交点,此时会在所有交点处将操作线打断,然后按顺序将位于奇数和偶数次序的线段分别合并,产生两个线对象。也就是说,使用折线分割线时,可能会产生复杂线对象。下图展示的就是这种情况,分割后,红色的线和绿色的线分别为一个复杂线对象。

  • 面对象分割线对象

    面对象分割线对象与线分割线类似,会在分割面和操作线的所有交点处将操作线打断,然后分别将位于奇数和偶数位置的线合并,产生两个线对象。这种情况会产生至少一个复杂线对象。下图中,面对象(浅橙色)将线对象分割为红色和绿色两个复杂线对象。

注意:

1. 如果被分割的线对象为复杂对象,那么如果分割线经过子对象,则会将该子对象分割为两个线对象,因此,分割复杂线对象可能产生多个线对象。

2. 用于分割的线对象或者面对象如果有自相交,分割不会失败,但分割的结果可能不正确。因此,应尽量使用没有自相交的线或面对象来分割线。

版本信息

SuperMap iObjects .NET


请参见