共用方式為


多行字符串

MultiLineString是零個或多個geometry或 geographyLineString 實例的集合。

MultiLineString 實例

下圖顯示MultiLineString 的實例範例。

geometry 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 實例有效,它必須符合下列準則:

  1. 組成 MultiLineString 實例的所有實例都必須是有效的 LineString 實例。

  2. 不允許兩個組成 LineString 的實例在 MultiLineString 實例的間隔內發生重疊。 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實例,其中包含兩個具有 SRID 0 的LineString元素。

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 (geometry 資料類型)
STIsClosed(geometry 資料型別)
LineString
空間數據 (SQL Server)