MultiLineString
適用対象: SQL Server
Azure SQL データベース
Azure SQL Managed Instance
MultiLineString は、0 個以上の geometry または geographyLineString インスタンスのコレクションです。
MultiLineString インスタンス
次の図は、 MultiLineString インスタンスの例です。
この図は次のことを示しています。
図 1 は、2 つの LineString 要素の 4 つの終点からなる境界を持つ単純な MultiLineString インスタンスです。
図 2 の MultiLineString インスタンスは、 LineString 要素の終点のみで交差しているため単純です。 このインスタンスの境界は、重なっていない 2 つの終点です。
図 3 の MultiLineString インスタンスは、 LineString 要素の内部で交差しているため単純ではありません。 この MultiLineString インスタンスの境界は 4 つの終点です。
図 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))';
次の例では、2 番目の System.FormatException
LineString インスタンスが有効ではないため、 がスローされます。
DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';
有効なインスタンス
MultiLineString インスタンスを有効にするためには、次の条件を満たす必要があります。
MultiLineString インスタンスを構成するすべてのインスタンスが、有効な LineString インスタンスでなければならない。
MultiLineString インスタンスを構成する 2 つの LineString インスタンスが内部で互いに重ならない。 LineString インスタンスは、有限数の接点のみで、互いにまたは他の LineString インスタンスと交差するか接することができます。
次の例に、3 つの有効な MultiLineString インスタンスと 1 つの無効な 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
は、2 番目の LineString インスタンスが最初の LineString インスタンスと内部で重なっているため、有効ではありません。 有限数の接点で接しています。
例
次の例では、2 つの 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)