Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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.
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:
A MultiLineString-példányt tartalmazó összes példánynak érvényes LineString-példánynak kell lennie.
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;