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 MultiPolygon példány egy nulla vagy több Polygon példányból álló gyűjtemény.
Sokszögpéldányok
Az alábbi ábrán többpolygonos példányok példái láthatók.
Ahogy az ábrán látható:
Az 1. ábra egy MultiPolygon objektum két sokszög elemekkel. A határt a két külső gyűrű és a három belső gyűrű határozza meg.
A 2. ábra egy MultiPolygon példány, amely két Polygon elemmel rendelkezik. A határt a két külső gyűrű és a három belső gyűrű határozza meg. A két sokszögelem egy érintőponton metszi egymást.
Elfogadott esetek
A MultiPolygon példány akkor kerül elfogadásra, ha az alábbi feltételek egyike teljesül.
Ez egy üres MultiPolygon-példány .
Az összes példány, amely része a MultiPolygon példánynak, elfogadott polygon-példány. Az elfogadott sokszögpéldányokról további információt a Sokszög című témakörben talál.
Az alábbi példák az elfogadott MultiPolygon-példányokat mutatják be.
DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
Az alábbi példa egy MultiPolygon-példányt mutat be, amely egy kivételt fog dobni System.FormatException.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
A MultiPolygon második példánya egy LineString-példány, nem pedig elfogadott sokszögpéldány.
Érvényes példányok
A MultiPolygon-példány akkor érvényes, ha üres MultiPolygon-példány , vagy ha megfelel az alábbi feltételeknek.
A MultiPolygon példányait alkotó összes példány érvényes Polygon példány. Az érvényes Polygon példányok esetén lásd Polygon.
Egyik Polygon példány sem fedi egymást, amelyek a MultiPolygon példányt alkotják.
Az alábbi példa két érvényes MultiPolygon-példányt és egy érvénytelen MultiPolygon-példányt mutat be.
DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid();
@g2 érvényes, mert a két sokszög csak egy pontban érintkezik tangenciálisan.
@g3 érvénytelen, mert a két sokszögobjektum belső részeik átfedik egymást.
Examples
A. példa.
Az alábbi példa egy geometry MultiPolygon példány létrehozását mutatja be, és a második összetevő Well-Known szövegét (WKT) adja vissza.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON(((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1)), ((9 9, 9 10, 10 9, 9 9)))');
SELECT @g.STGeometryN(2).STAsText();
B. példa.
Ez a példa egy üres MultiPolygon példányt hoz létre.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');