Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Een MultiPolygon-exemplaar is een verzameling van nul of meer Polygoon-exemplaren .
Veelhoekexemplaren
In de onderstaande afbeelding ziet u voorbeelden van 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.
Geaccepteerde gevallen
Een MultiPolygon-exemplaar wordt geaccepteerd als aan een van de volgende voorwaarden wordt voldaan.
Het is een leeg MultiPolygon-exemplaar .
Alle instanties die deel uitmaken van de MultiPolygon-instantie zijn geaccepteerde Polygon-instanties. Zie Polygon voor meer informatie over geaccepteerde exemplaren van Polygon.
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-instantie die een System.FormatException zal genereren.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
Het tweede instantie in de MultiPolygon is een LineString-instantie en geen geaccepteerde polygooninstantie.
Geldige exemplaren
Een MultiPolygon-exemplaar is geldig als het een leeg MultiPolygon-exemplaar is of voldoet aan de volgende criteria.
Alle exemplaren die de MultiPolygon-instantie omvatten, zijn geldige Polygon-exemplaren . Zie Veelhoek voor geldige veelhoekexemplaren.
Geen van de Polygon-instanties die de MultiPolygon-instantie vormen overlappen elkaar.
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 Polygon objecten alleen op een raakpunt raken.
@g3 is ongeldig omdat de binnenkanten van de twee polygoonexemplaren elkaar overlappen.
Examples
Voorbeeld A.
Het volgende voorbeeld laat zien hoe een geometry MultiPolygon instantie wordt gemaakt 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();
Voorbeeld B.
In dit voorbeeld wordt een leeg MultiPolygon exemplaar geïnstitueert.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');