MultiLineString
Un MultiLineString
oggetto è una raccolta di istanze zero o più geometry
o geographyLineString .
Istanze MultiLineString
Nella figura seguente vengono illustrati esempi di istanze MultiLineString
.
Come indicato nell'illustrazione:
La figura 1 è un'istanza semplice
MultiLineString
il cui limite è il quattro endpoint dei dueLineString
elementi.La figura 2 è un'istanza di tipo semplice
MultiLineString
perché si intersecano solo gli endpoint degli elementiLineString
. Il limite è rappresentato dai due endpoint non sovrapposti.La figura 3 è un'istanza di tipo non semplice
MultiLineString
perché l'interno di uno dei suoi elementiLineString
è intersecato. Il limite di questa istanzaMultiLineString
è rappresentato dai quattro endpoint.La figura 4 rappresenta un'istanza di tipo non semplice, non chiuso
MultiLineString
.La figura 5 rappresenta un'istanza di tipo semplice, non chiuso
MultiLineString
. Non è chiuso perché gliLineStrings
elementi non sono chiusi. È semplice perché nessuna delle parti interne di alcuna istanzaLineStrings
si interseca.La figura 6 rappresenta un'istanza di tipo semplice e chiuso
MultiLineString
. È chiusa perché tutti i suoi elementi sono chiusi. È semplice perché nessuno dei suoi elementi si interseca con le parti interne.
Istanze accettate
Per poter essere accettata, un'istanza di MultiLineString
deve essere vuota o comprendere esclusivamente istanze di LineString
accettate. Per altre informazioni sulle istanze accettate LineString
, vedere LineString. Negli esempi seguenti vengono illustrate alcune istanze MultiLineString
accettate.
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))';
Nell'esempio seguente viene generata un'eccezione System.FormatException
, poiché la seconda istanza di LineString
non è valida.
DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';
Istanze valide
Per poter essere valida, un'istanza MultiLineString
deve soddisfare i criteri seguenti:
Tutte le istanze che comprendono l'istanza
MultiLineString
devono essere istanzeLineString
valide.Due istanze
LineString
che comprendono l'istanza diMultiLineString
possono sovrapporsi a un intervallo. Le istanze diLineString
possono solo intersecarsi oppure toccarsi reciprocamente o con altre istanze diLineString
in un numero finito di punti.
Nell'esempio seguente vengono indicate tre istanze MultiLineString
valide e un'istanza MultiLineString
non valida.
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
non è valida, poiché la seconda istanza LineString
si sovrappone alla prima istanza LineString
in un intervallo. Si toccano in un numero infinito di punti.
Esempi
L'esempio seguente crea un'istanza geometry``MultiLineString
che contiene due elementi LineString
con SRID 0.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
Per creare un'istanza di questa istanza con un diverso SRID, utilizzare STGeomFromText()
o STMLineStringFromText()
. È anche possibile utilizzare Parse()
e quindi modificare l'identificatore SRID, come mostrato dall'esempio seguente.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
SET @g.STSrid = 13;
Vedere anche
STLength (tipo di dati geometry)
STIsClosed (tipo di dati geometry)
LineString
Dati spaziali (SQL Server)