MultiLineString

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

En MultiLineString är en samling med noll eller fler geometri eller geografiLineString-exemplar.

MultiLineString-instanser

Följande bild visar exempel på MultiLineString-instanser .

Diagram över exempel på geometri MultiLineString-instanser.

Som du ser i bilden:

  • Bild 1 är en enkel MultiLineString-instans vars gräns är de fyra slutpunkterna för dess två LineString-element .

  • Bild 2 är en enkel MultiLineString-instans eftersom endast slutpunkterna för LineString-elementen korsar varandra. Gränsen är de två slutpunkterna som inte överlappar varandra.

  • Bild 3 är en icke-enkel MultiLineString-instans eftersom det inre av ett av dess LineString-element korsas. Gränsen för den här MultiLineString-instansen är de fyra slutpunkterna.

  • Bild 4 är en icke-enkel, öppen MultiLineString-instans.

  • Bild 5 är en enkel, icke-sluten MultiLineString. Den är inte stängd eftersom dess LineStrings-element inte är stängda. Det är enkelt eftersom de inre delarna av någon av LineStrings-instanserna inte korsar varandra.

  • Bild 6 är en enkel, stängd MultiLineString-instans . Den är stängd eftersom alla dess element är stängda. Det är enkelt eftersom inget av dess element korsar inredningen.

Godkända instanser

För att en MultiLineString-instans ska accepteras måste den antingen vara tom eller bestå av endast LineString-instanser som accepteras. Mer information om godkända LineString-instanser finns i LineString. Följande är exempel på accepterade MultiLineString-instanser .

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))';  

Följande exempel genererar en System.FormatException eftersom den andra LineString-instansen inte är giltig.

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

Giltiga instanser

För att en MultiLineString-instans ska vara giltig måste den uppfylla följande kriterier:

  1. Alla instanser som består av MultiLineString-instansen måste vara giltiga LineString-instanser .

  2. Inga två LineString-instanser som består av MultiLineString-instansen kan överlappa ett intervall. LineString-instanserna kan bara korsa eller röra sig själva eller andra LineString-instanser vid ett begränsat antal punkter.

I följande exempel visas tre giltiga MultiLineString-instanser och en MultiLineString-instans som inte är giltig.

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 är ogiltig eftersom den andra LineString-instansen överlappar den första LineString-instansen med ett intervall. De rör vid ett oändligt antal punkter.

Examples

I följande exempel skapas en enkel geometry``MultiLineString instans som innehåller två LineString element med SRID 0.

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

Om du vill instansiera den här instansen med ett annat SRID använder du STGeomFromText() eller STMLineStringFromText(). Du kan också använda Parse() och sedan ändra SRID enligt följande exempel.

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