Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Eine MultiPolygon -Instanz ist eine Sammlung von null oder mehr Polygon -Instanzen.
Polygoninstanzen
Die nachfolgende Abbildung enthält Beispiele für MultiPolygon -Instanzen.
Folgendes wird dargestellt:
Abbildung 1 zeigt eine MultiPolygon -Instanz mit zwei Polygon -Elementen. Die Begrenzung wird durch die beiden äußeren Ringe und die drei inneren Ringe definiert.
Abbildung 2 zeigt eine MultiPolygon -Instanz mit zwei Polygon -Elementen. Die Begrenzung wird durch die beiden äußeren Ringe und die drei inneren Ringe definiert. Die beiden Polygon -Elemente überschneiden sich an einem Tangentenpunkt.
Akzeptierte Instanzen
Eine MultiPolygon -Instanz ist akzeptiert, wenn eine der folgenden Bedingungen erfüllt ist.
Es handelt sich um eine leere MultiPolygon -Instanz.
Alle Instanzen, aus denen die MultiPolygon -Instanz besteht, sind akzeptierte Polygon -Instanzen. Weitere Informationen über akzeptierte Polygon -Instanzen finden Sie unter Polygon.
In den folgenden Beispielen werden akzeptierte MultiPolygon -Instanzen veranschaulicht.
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)))';
Das folgende Beispiel zeigt eine MultiPolygon-Instanz, die eine System.FormatExceptionauslöst.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
Die zweite Instanz im MultiPolygon ist eine LineString-Instanz und keine akzeptierte Polygon-Instanz.
Gültige Instanzen
Eine MultiPolygon -Instanz ist gültig, wenn es sich um eine leere MultiPolygon -Instanz handelt bzw. wenn die folgenden Kriterien erfüllt werden.
Alle Instanzen, aus denen die MultiPolygon -Instanz besteht, sind gültige Polygon -Instanzen. Informationen über gültige Polygon -Instanzen finden Sie unter Polygon.
Die Polygon -Instanzen, aus denen die MultiPolygon -Instanz besteht, überschneiden sich nicht.
Im folgende Beispiel werden zwei gültige MultiPolygon -Instanzen und eine ungültige MultiPolygon -Instanz veranschaulicht.
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 ist gültig, da sich die zwei Polygon -Instanzen nur an einem Tangenspunkt berühren.
@g3 ist ungültig, da sich die Innenbereiche der zwei Polygon -Instanzen überlappen.
Examples
Beispiel A.
Im folgenden Beispiel wird die Erstellung einer geometry MultiPolygon -Instanz veranschaulicht und das WKT-Format (Well-Known Text) der zweiten Komponente zurückgegeben.
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();
Beispiel B.
In diesem Beispiel wird eine leere MultiPolygon -Instanz instantiiert.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');