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 MultiPolygon-instans är en samling med noll eller fler Polygon-instanser .
Polygoninstanser
Bilden nedan visar exempel på MultiPolygon-instanser .
Som du ser i bilden:
Bild 1 är en MultiPolygon-instans med två Polygon-element . Gränsen definieras av de två yttre ringarna och de tre inre ringarna.
Bild 2 är en MultiPolygon-instans med två Polygon-element . Gränsen definieras av de två yttre ringarna och de tre inre ringarna. De två polygonelementen korsar varandra vid en tangenspunkt.
Godkända instanser
En MultiPolygon-instans accepteras, om något av följande villkor uppfylls.
Det är en tom MultiPolygon-instans .
Alla instanser som består av MultiPolygon-instansen accepteras polygoninstanser . Mer information om accepterade Polygon-instanser finns i Polygon.
I följande exempel visas accepterade MultiPolygon-instanser .
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)))';
I följande exempel visas en MultiPolygon-instans som genererar en System.FormatException.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
Den andra instansen i MultiPolygon är en LineString-instans och inte en accepterad Polygon-instans.
Giltiga instanser
En MultiPolygon-instans är giltig om den är en tom MultiPolygon-instans eller om den uppfyller följande villkor.
Alla instanser som består av MultiPolygon-instansen är giltiga Polygon-instanser . Giltiga Polygon-instanser finns i Polygon.
Ingen av polygoninstanserna som består av MultiPolygon-instansen överlappar varandra.
I följande exempel visas två giltiga MultiPolygon-instanser och en ogiltig MultiPolygon-instans .
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 är giltig eftersom de två Polygon-instanserna endast rör vid en tangentpunkt.
@g3 är inte giltigt eftersom interiörer i de två Polygon-instanserna överlappar varandra.
Examples
Exempel A.
I följande exempel visas hur man skapar en geometry MultiPolygon-instans och returnerar Well-Known Text (WKT) för den andra komponenten.
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();
Exempel B.
Det här exemplet instansierar en tom MultiPolygon instans.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');