Megosztás a következőn keresztül:


MultiLineString

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A MultiLineString nulla vagy több geometria vagy geographyLineString példány gyűjteménye.

MultiLineString-példányok

Az alábbi ábrán a MultiLineString-példányok példái láthatók.

Példák a geometriai MultiLineString-példányokra.

Ahogy az ábrán látható:

  • Az 1. ábra egy egyszerű MultiLineString-példány , amelynek határa a két LineString-elem négy végpontja.

  • A 2. ábra egy egyszerű MultiLineString-példány , mert csak a LineString-elemek végpontjai metszik egymást. A határ a két nem átfedő végpont.

  • A 3. ábra egy nem egyszerű MultiLineString példány, mert az egyik LineString-elemének belső része keresztezi egymást. A MultiLineString-példány határa a négy végpont.

  • A 4. ábra egy nem egyszerű, nem záródó MultiLineString példány.

  • Az 5. ábra egy egyszerű, nem záródó MultiLineString. Nincs bezárva, mert a LineStrings elemei nincsenek bezárva. Ez egyszerű, mert egyik LineStrings példány belső része sem metszi a másikat.

  • A 6. ábra egy egyszerű, zárt MultiLineString-példány . Azért van bezárva, mert az összes eleme zárva van. Ez egyszerű, mert egyik eleme sem metszi a belső tér.

Elfogadott esetek

A MultiLineString-példányok elfogadásához üresnek kell lennie, vagy csak az elfogadott LineString-példányokból kell állnia. Az elfogadott LineString-példányokról további információt a LineStringben talál. Az alábbi példák az elfogadott MultiLineString-példányokra mutatnak be példákat.

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

Az alábbi példa azért ad egy System.FormatException hibát, mert a második LineString-példány érvénytelen.

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

Érvényes példányok

Ahhoz, hogy egy MultiLineString-példány érvényes legyen, meg kell felelnie a következő feltételeknek:

  1. A MultiLineString-példányt tartalmazó összes példánynak érvényes LineString-példánynak kell lennie.

  2. A MultiLineString-példányt tartalmazó két LineString-példány nem fedheti át egymást egy intervallumon belül. A LineString-példányok csak egymást vagy más LineString-példányokat metszhetnek vagy érinthetnek meg véges számú ponton.

Az alábbi példa három érvényes MultiLineString-példányt és egy érvénytelen MultiLineString-példányt mutat be.

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 érvénytelen, mert a második LineString-példány időközönként átfedi az első LineString-példányt . Végtelen számú pontot érintenek.

Példák

Az alábbi példa egy egyszerű geometry``MultiLineString példányt hoz létre, amely két LineString elemet tartalmaz az SRID 0-val.

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

Ha ezt a példányt egy másik SRID-vel szeretné létrehozni, használja a STGeomFromText() vagy STMLineStringFromText() opciót. Használhatja Parse() és módosíthatja az SRID-t is, ahogy az az alábbi példában is látható.

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