A MultiLineString 是零个或多个 geometrygeographyLineString 实例的集合。
MultiLineString 实例
下图展示了MultiLineString实例的例子。
如下图所示:
图 1 是一个简单的
MultiLineString实例,其边界是其两个LineString元素的四个终结点。图 2 是一个简单的
MultiLineString实例,因为只有LineString元素的端点相交。 边界是两个不重叠的终结点。图 3 是一个非简单的
MultiLineString实例,因为其中一个LineString元素的内部被交叉。 此MultiLineString实例的边界是四个终结点。图 4 是非简单的非封闭
MultiLineString实例。图 5 是一个简单的非封闭
MultiLineString。 它未关闭,因为其中的LineStrings元素未关闭。 这很简单,因为任何LineStrings实例的内部都不存在相交。图 6 是一个简单的封闭
MultiLineString实例。 它已经关闭了,因为它的所有元素都是关闭状态。 它很简单,因为它的元素在内部没有相交。
接受的实例
对于 MultiLineString 实例被接受,它必须是空的,或者只包含接受的 LineString 实例。 有关接受 LineString 的实例的详细信息,请参阅 LineString。 下面是接受 MultiLineString 的实例的示例。
DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';
下面的示例引发一个System.FormatException,因为第二个LineString实例无效。
DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';
有效实例
MultiLineString要使实例有效,它必须满足以下条件:
构成
MultiLineString该实例的所有实例必须是有效的LineString实例。组成
MultiLineString实例的任意两个LineString实例在某一时间间隔内不能重叠。 这些LineString实例只能在有限的点数处相交或触摸自己或其他LineString实例。
以下示例显示了三个有效 MultiLineString 实例和一个 MultiLineString 无效实例。
DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();
@g4 无效,因为第二 LineString 个实例以间隔重叠第一 LineString 个实例。 他们触摸到无限数量的点。
例子
以下示例创建一个简单 geometry``MultiLineString 实例,其中包含两 LineString 个具有 SRID 0 的元素。
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
若要使用不同的 SRID 实例化此实例,请使用 STGeomFromText() 或 STMLineStringFromText()。 还可以使用 Parse() 和修改 SRID,如以下示例所示。
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
SET @g.STSrid = 13;
另请参阅
STLength (几何数据类型)
STIsClosed (几何数据类型)
LineString
空间数据(SQL Server)