Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-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 .
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:
Alla instanser som består av MultiLineString-instansen måste vara giltiga LineString-instanser .
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;