Delen via


MultiPolygon

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Een MultiPolygon-exemplaar is een verzameling van nul of meer Polygoon-exemplaren .

Polygon instances

In de onderstaande afbeelding ziet u voorbeelden van MultiPolygon-exemplaren .

Diagram van voorbeelden van geometrie multipolygon-exemplaren.

Zoals wordt weergegeven in de afbeelding:

  • Afbeelding 1 is een multipolygon-exemplaar met twee polygoonelementen . De grens wordt gedefinieerd door de twee buitenringen en de drie binnenste ringen.

  • Afbeelding 2 is een multipolygon-exemplaar met twee polygoonelementen . De grens wordt gedefinieerd door de twee buitenringen en de drie binnenste ringen. De twee polygoonelementen snijden elkaar op een tangenspunt.

Accepted instances

Aan een multipolygon-exemplaar wordt een van de volgende voorwaarden voldaan.

  • Het is een leeg MultiPolygon-exemplaar .

  • Alle exemplaren die de MultiPolygon-instantie omvatten, worden geaccepteerde Polygon-exemplaren . Zie Veelhoek voor meer informatie over geaccepteerde polygoonexemplaren.

In de volgende voorbeelden ziet u geaccepteerde MultiPolygon-exemplaren .

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

In het volgende voorbeeld ziet u een MultiPolygon-exemplaar dat een System.FormatException.

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

Het tweede exemplaar in de MultiPolygon is een LineString-exemplaar en geen geaccepteerd polygoonexemplaren.

Valid instances

Een MultiPolygon-exemplaar is geldig als het een leeg MultiPolygon-exemplaar is of voldoet aan de volgende criteria.

  1. Alle exemplaren die de MultiPolygon-instantie omvatten, zijn geldige Polygon-exemplaren . Zie Veelhoek voor geldige veelhoekexemplaren.

  2. Geen van de polygoonexemplaren die de MultiPolygon-instantie overlappen.

In het volgende voorbeeld ziet u twee geldige MultiPolygon-exemplaren en één ongeldig multipolygon-exemplaar .

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 is geldig omdat de twee veelhoekexemplaren alleen op een tangenspunt raken. @g3 is ongeldig omdat de binnenkanten van de twee polygoonexemplaren elkaar overlappen.

Examples

Example A.

Het volgende voorbeeld toont het maken van een geometry MultiPolygon exemplaar en retourneert de Well-Known Text (WKT) van het tweede onderdeel.

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

Example B.

In dit voorbeeld wordt een leeg MultiPolygon exemplaar geïnstitueert.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');