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.
Si applica a:SQL Server
Azure SQL Database
Istanza gestita di SQL di Azure
Endpoint di analisi SQL in Microsoft Fabric
Warehouse in Microsoft Fabric
Database SQL in Microsoft Fabric
Un'istanza MultiLineString è una raccolta di zero o più istanze di tipo geometry o geographyLineString .
Istanze di MultiLineString
La figura seguente mostra esempi di istanze MultiLineString .
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 è costituito 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
Affinché un'istanza MultiLineString venga accettata, deve essere vuota o costituita solo da 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
Affinché un'istanza MultiLineString sia valida, deve soddisfare i criteri seguenti:
Tutte le istanze che comprendono l'istanza MultiLineString devono essere istanze LineString valide.
Nessuna istanza LineString che comprende l'istanza MultiLineString può 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.
Examples
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;