MultiLineString

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

Un'istanza MultiLineString è una raccolta di zero o più istanze di tipo geometry o geographyLineString .

Istanze MultiLineString

La figura seguente illustra esempi di istanze MultiLineString .

Examples of geometry MultiLineString instances

Come indicato nell'illustrazione:

  • La figura 1 è un'istanza MultiLineString di tipo semplice il cui limite sono i quattro endpoint dei due elementi LineString .

  • La figura 2 è un'istanza di tipo semplice MultiLineString perché si intersecano solo gli endpoint degli elementi LineString . 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 elementi LineString è intersecato. Il limite di questa istanza MultiLineString è rappresentato dai quattro endpoint.

  • La figura 4 rappresenta un'istanza MultiLineString non semplice e non chiusa.

  • La figura 5 rappresenta un'istanza MultiLineStringsemplice non chiusa. Non è chiusa perché gli elementi LineString non sono chiusi. È semplice perché nessuna delle parti interne di alcuna istanza LineString si interseca.

  • La figura 6 rappresenta un'istanza MultiLineString semplice e chiusa. È 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 MultiLineString deve essere vuota oppure comprendere esclusivamente istanze LineString accettate. Per altre informazioni sulle istanze LineString accettate, vedere LineString. Gli esempi seguenti illustrano 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))';  

L'esempio seguente genera un'eccezione System.FormatException , perché la seconda istanza 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:

  1. Tutte le istanze che comprendono l'istanza MultiLineString devono essere istanze LineString valide.

  2. Due istanze LineString che comprendono l'istanza MultiLineString possono sovrapporsi a un intervallo. Le istanze LineString possono solo intersecarsi oppure toccarsi reciprocamente o con altre istanze LineString in un numero finito di punti.

L'esempio seguente indica 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, perché 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)