MultiLineStringMultiLineString

Un'istanza MultiLineString è una raccolta di zero o più istanze di tipo geometry o geographyLineString .A MultiLineString is a collection of zero or more geometry or geographyLineString instances.

Istanze MultiLineStringMultiLineString instances

La figura seguente illustra esempi di istanze MultiLineString .The illustration below shows examples of MultiLineString instances.

Esempi di istanze di geometria MultiLineStringExamples of geometry MultiLineString instances

Come indicato nell'illustrazione:As shown in the illustration:

  • La figura 1 è un'istanza MultiLineString di tipo semplice il cui limite sono i quattro endpoint dei due elementi LineString .Figure 1 is a simple MultiLineString instance whose boundary is the four endpoints of its two LineString elements.

  • La figura 2 è un'istanza di tipo semplice MultiLineString perché si intersecano solo gli endpoint degli elementi LineString .Figure 2 is a simple MultiLineString instance because only the endpoints of the LineString elements intersect. Il limite è rappresentato dai due endpoint non sovrapposti.The boundary is the two non-overlapping endpoints.

  • La figura 3 è un'istanza di tipo non semplice MultiLineString perché l'interno di uno dei suoi elementi LineString è intersecato.Figure 3 is a nonsimple MultiLineString instance because the interior of one of its LineString elements is intersected. Il limite di questa istanza MultiLineString è rappresentato dai quattro endpoint.The boundary of this MultiLineString instance is the four endpoints.

  • La figura 4 rappresenta un'istanza MultiLineString non semplice e non chiusa.Figure 4 is a nonsimple, nonclosed MultiLineString instance.

  • La figura 5 rappresenta un'istanza MultiLineStringsemplice non chiusa.Figure 5 is a simple, nonclosed MultiLineString. Non è chiusa perché gli elementi LineString non sono chiusi.It is not closed because its LineStrings elements are not closed. È semplice perché nessuna delle parti interne di alcuna istanza LineString si interseca.It is simple because none of the interiors of any of the LineStrings instances intersect.

  • La figura 6 rappresenta un'istanza MultiLineString semplice e chiusa.Figure 6 is a simple, closed MultiLineString instance. È chiusa perché tutti i suoi elementi sono chiusi.It is closed because all its elements are closed. È semplice perché nessuno dei suoi elementi si interseca con le parti interne.It is simple because none of its elements intersect at the interiors.

Istanze accettateAccepted instances

Per poter essere accettata, un'istanza MultiLineString deve essere vuota o comprendere esclusivamente istanze LineString accettate.For a MultiLineString instance to be accepted it must either be empty or comprised of only LineString intances that are accepted. Per altre informazioni sulle istanze LineString accettate, vedere LineString.For more information on accepted LineString instances, see LineString. Gli esempi seguenti illustrano alcune istanze MultiLineString accettate.The following are examples of accepted MultiLineString instances.

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.The following example throws a System.FormatException because the second LineString instance is not valid.

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

Istanze valideValid instances

Per poter essere valida, un'istanza MultiLineString deve soddisfare i criteri seguenti:For a MultiLineString instance to be valid it must meet the following criteria:

  1. Tutte le istanze che comprendono l'istanza MultiLineString devono essere istanze LineString valide.All instances comprising the MultiLineString instance must be valid LineString instances.

  2. Due istanze LineString che comprendono l'istanza MultiLineString possono sovrapporsi a un intervallo.No two LineString instances comprising the MultiLineString instance may overlap over an interval. Le istanze LineString possono solo intersecarsi oppure toccarsi reciprocamente o con altre istanze LineString in un numero finito di punti.The LineString instances can only intersect or touch themselves or other LineString instances at a finite number of points.

    L'esempio seguente indica tre istanze MultiLineString valide e un'istanza MultiLineString non valida.The following example shows three valid MultiLineString instances and one MultiLineString instance that is not valid.

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.@g4 is not valid because the second LineString instance overlaps the first LineString instance at an interval. Si toccano in un numero infinito di punti.They touch at an infinite number of points.

EsempiExamples

L'esempio seguente crea un'istanza geometry``MultiLineString che contiene due elementi LineString con SRID 0.The following example creates a simple geometry``MultiLineString instance containing two LineString elements with the 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().To instantiate this instance with a different SRID, use STGeomFromText() or STMLineStringFromText(). È anche possibile utilizzare Parse() e quindi modificare l'identificatore SRID, come mostrato dall'esempio seguente.You can also use Parse() and then modify the SRID, as shown in the following example.

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

Vedere ancheSee Also

STLength (tipo di dati geometry) STLength (geometry Data Type)
STIsClosed (tipo di dati geometry) STIsClosed (geometry Data Type)
LineString LineString
Dati spaziali (SQL Server) Spatial Data (SQL Server)