Freigeben über


MultiLineString

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric SQL in Microsoft Fabric

Ein MultiLineString -Objekt ist eine Sammlung von null oder mehr geometry - oder geographyLineString -Instanzen.

MultiLineString-Instanzen

Die folgende Abbildung zeigt Beispiele für MultiLineString-Instanzen .

Diagramm der Beispiele für Geometrie MultiLineString-Instanzen.

Folgendes wird dargestellt:

  • Abbildung 1 zeigt eine einfache MultiLineString -Instanz, deren Begrenzung aus den vier Endpunkten ihrer beiden LineString -Elemente besteht.

  • Abbildung 2 zeigt eine einfache MultiLineString -Instanz, da sich nur die Endpunkte der LineString -Elemente überschneiden. Die Grenze ist die beiden nicht überlappenden Endpunkte.The boundary is the two nonoverlapping endpoints.

  • Abbildung 3 zeigt eine nicht einfache MultiLineString -Instanz, da der Innenbereich eines ihrer LineString -Elemente geschnitten wird. Die Begrenzung dieser MultiLineString -Instanz besteht aus den vier Endpunkten.

  • Abbildung 4 zeigt eine nicht einfache, nicht geschlossene MultiLineString -Instanz.

  • Abbildung 5 zeigt eine einfache, nicht geschlossene MultiLineString-Instanz. Sie ist nicht geschlossen, da ihre LineStrings -Elemente nicht geschlossen sind. Sie ist einfach, da keiner der Innenbereiche der LineStrings -Instanzen sich mit anderen überschneidet.

  • Abbildung 6 zeigt eine einfache, geschlossene MultiLineString -Instanz. Sie ist geschlossen, weil alle ihre Elemente geschlossen sind. Sie ist einfach, weil keines ihrer Elemente sich im Innenbereich mit anderen überschneidet.

Akzeptierte Instanzen

Damit eine MultiLineString-Instanz akzeptiert wird, muss sie entweder leer oder nur aus akzeptierten LineString-Instanzen bestehen. Weitere Informationen über akzeptierte LineString -Instanzen finden Sie unter LineString. In den folgenden Beispielen werden akzeptierte MultiLineString -Instanzen veranschaulicht.

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))';  

Im folgenden Beispiel wird eine System.FormatException ausgelöst, da die zweite LineString -Instanz nicht gültig ist.

DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';  

Gültige Instanzen

Damit eine MultiLineString-Instanz gültig ist, muss sie die folgenden Kriterien erfüllen:

  1. Alle Instanzen, die die MultiLineString -Instanz beinhalten, müssen gültige LineString -Instanzen sein.

  2. Keine zwei LineString-Instanzen , die aus der MultiLineString-Instanz bestehen, können sich über ein Intervall überschneiden. Die LineString -Instanzen können sich nur mit einer endlichen Anzahl von Punkten überschneiden oder sich selbst oder andere LineString -Instanzen berühren.

Im folgenden Beispiel werden drei gültige MultiLineString -Instanzen und eine nicht gültige MultiLineString -Instanz gezeigt.

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 ist nicht gültig, da die zweite LineString -Instanz die erste LineString -Instanz in einem Intervall überlappt. Sie berühren sich mit einer unendlichen Anzahl von Punkten.

Beispiele

Im folgenden Beispiel wird eine einfache geometry``MultiLineString -Instanz erstellt, die zwei LineString -Elemente mit der SRID 0 enthält.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');  

Um diese Instanz mit einem anderen SRID zu instanziieren, verwenden Sie STGeomFromText() oder STMLineStringFromText(). Sie können auch Parse() verwenden und den SRID dann ändern, wie im folgenden Beispiel gezeigt.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');  
SET @g.STSrid = 13;