Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un MultiLineString
è una raccolta di zero o più geometry
o istanze geographyLineString.
Istanze di MultiLineString
La figura seguente mostra esempi di MultiLineString
istanze.
Come illustrato nella figura:
La figura 1 è un'istanza semplice
MultiLineString
il cui limite è costituito dai quattro endpoint dei dueLineString
elementi.La figura 2 è un'istanza semplice
MultiLineString
perché solo gli endpoint degliLineString
elementi si intersecano. Il limite è costituito dai due endpoint non sovrapposti.La figura 3 è un'istanza di
MultiLineString
non semplice perché l'interno di uno dei suoi elementiLineString
è intersecato. Il limite di questaMultiLineString
istanza è costituito dai quattro endpoint.La figura 4 è un'istanza non semplice e non chiusa
MultiLineString
.La figura 5 è un oggetto semplice e non chiuso
MultiLineString
. Non è chiuso perché i relativiLineStrings
elementi non sono chiusi. È semplice perché nessuno degli interni di nessuna delleLineStrings
istanze si interseca.La figura 6 rappresenta un'istanza semplice e chiusa
MultiLineString
. Viene chiuso perché tutti i relativi elementi sono chiusi. È semplice perché nessuno dei suoi elementi si interseca negli interni.
Istanze accettate
Affinché un'istanza MultiLineString
venga accettata, deve essere vuota o costituita solo LineString
da istanze accettate. Per altre informazioni sulle istanze accettate LineString
, vedere LineString. Di seguito sono riportati esempi di istanze accettate 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))';
Nell'esempio seguente viene generata un'eccezione System.FormatException
perché la seconda LineString
istanza non è valida.
DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';
Istanze valide
Affinché un'istanza MultiLineString
sia valida, deve soddisfare i criteri seguenti:
Tutte le istanze che comprendono l'istanza
MultiLineString
devono essere istanze valideLineString
.Nessuna delle due istanze
LineString
che comprendono l'istanzaMultiLineString
può sovrapporsi su un intervallo. LeLineString
istanze possono intersecare o toccare solo se stesse o altreLineString
istanze a un numero finito di punti.
L'esempio seguente mostra tre istanze valide MultiLineString
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 è valido perché la seconda LineString
istanza si sovrappone alla prima LineString
istanza a un intervallo. Toccano un numero infinito di punti.
Esempi
Nell'esempio seguente viene creata una semplice geometry``MultiLineString
istanza contenente due LineString
elementi 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 identificatore SRID diverso, usare STGeomFromText()
o STMLineStringFromText()
. È anche possibile usare Parse()
e quindi modificare l'identificatore SRID, come illustrato nell'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)