A MultiLineString
是零个或多个 geometry
geographyLineString 实例的集合。
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)