Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein MultiLineString ist eine Sammlung von null oder mehr geometry- oder Geografie-Linienstring-Instanzen.
MultiLineString-Instanzen
Die folgende Abbildung zeigt Beispiele für MultiLineString Instanzen.
Wie in der Abbildung gezeigt:
Abbildung 1 ist eine einfache
MultiLineStringInstanz, deren Grenze die vier Endpunkte seiner beidenLineStringElemente ist.Abbildung 2 ist eine einfache
MultiLineStringInstanz, da sich nur die Endpunkte derLineStringElemente schneiden. Die Grenze besteht aus den beiden nicht überlappenden Endpunkten.Abbildung 3 ist eine nicht einfache
MultiLineStringInstanz, da das Innere eines seinerLineStringElemente überschritten wird. Die Grenze dieserMultiLineStringInstanz ist die vier Endpunkte.Abbildung 4 ist eine nicht einfache, nicht geschlossene
MultiLineStringInstanz.Abbildung 5 ist ein einfaches, nicht geschlossenes
MultiLineString. Sie ist nicht geschlossen, da ihreLineStringsElemente nicht geschlossen sind. Es ist einfach, weil sich keiner der Innenräume irgendeiner derLineStringsInstanzen überschneidet.Abbildung 6 ist eine einfache, geschlossene
MultiLineStringInstanz. Sie ist geschlossen, da alle ihre Elemente geschlossen sind. Es ist einfach, weil sich keine seiner Elemente an den Inneneinrichtungen überschneiden.
Akzeptierte Vorkommen
Damit eine MultiLineString Instanz angenommen wird, muss sie entweder leer sein oder nur aus akzeptierten Intancen bestehen LineString . Weitere Informationen zu akzeptierten LineString Instanzen finden Sie unter LineString. Im Folgenden finden Sie Beispiele für akzeptierte MultiLineString Instanzen.
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 ein System.FormatException Fehler ausgelöst, da die zweite LineString Instanz ungü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:
Alle Instanzen, die die
MultiLineStringInstanz umfassen, müssen gültigeLineStringInstanzen sein.Keine zwei
LineStringInstanzen, die dieMultiLineStringInstanz umfassen, können sich über ein Intervall überlappen. DieLineStringInstanzen können sich nur selbst oder andereLineStringInstanzen an einer endlichen Anzahl von Punkten überschneiden oder berühren.
Das folgende Beispiel zeigt drei gültige MultiLineString Instanzen und eine MultiLineString ungültige Instanz.
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 ungültig, da die zweite LineString Instanz die erste LineString Instanz in einem Intervall überlappt. Sie berühren eine unendliche Anzahl von Punkten.
Beispiele
Im folgenden Beispiel wird eine einfache geometry``MultiLineString Instanz erstellt, die zwei LineString Elemente mit dem 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 STGeomFromText() oder STMLineStringFromText(). Sie können auch Parse() verwenden und dann die SRID ä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;
Siehe auch
STLength (Geometriedatentyp)
STIsClosed (Geometrietypl-Datenstruktur)
LineString
Räumliche Daten (SQL Server)