Partager via


MultiPolygon

S’applique à : point de terminaison d’analytique SQL Azure SQL Database Azure SQL Database Azure SQL Dans Microsoft Fabric Warehouse dans Microsoft Fabric SQL Database dans Microsoft Fabric SQL Database

Une instance MultiPolygon est une collection de zéro ou plusieurs instances Polygon .

Instances Polygon

L’illustration suivante montre des exemples d’instances MultiPolygon .

Diagramme d’exemples d’instances multipolygon géométriques.

Comme indiqué par l'illustration :

  • La figure 1 est une instance MultiPolygon avec deux éléments Polygon . La limite est définie par les deux anneaux extérieurs et les trois anneaux intérieurs.

  • La figure 2 est une instance MultiPolygon avec deux éléments Polygon . La limite est définie par les deux anneaux extérieurs et les trois anneaux intérieurs. Les deux éléments Polygon se croisent à un point tangent.

Instances acceptées

Les instances MultiPolygon sont acceptées si l’une des conditions suivantes est remplie.

  • Il s’agit d’une instance MultiPolygon vide.

  • Toutes les instances comprenant l’instance MultiPolygon sont des instances Polygon acceptées. Pour plus d’informations sur les instances Polygon acceptées, consultez Polygon.

Les exemples suivants illustrent des instances MultiPolygon acceptées.

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

L'exemple suivant illustre une instance MultiPolygon qui lève une exception System.FormatException.

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

La deuxième instance du MultiPolygon est une instance LineString et non une instance Polygon acceptée.

Instances valides

Les instances MultiPolygon sont valides s’il s’agit d’instances MultiPolygon vides ou si elles respectent les critères suivants.

  1. Toutes les instances comprenant l’instance MultiPolygon sont des instances Polygon valides. Pour obtenir des instances Polygon valides, consultez Polygon.

  2. Aucune des instances Polygon comprenant l’instance MultiPolygon n’en chevauche une autre.

L’exemple suivant illustre deux instances MultiPolygon valides et une instance MultiPolygon non valide.

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 est valide, car les deux instances Polygon se touchent uniquement à un point tangent. @g3 n’est pas valide, car les intérieurs des deux instances Polygon se chevauchent.

Exemples

Exemple A.

L’exemple suivant illustre la création d’une instance geometry MultiPolygon et retourne l’entrée WKT (well-known text) du deuxième composant.

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

Exemple B.

Cet exemple instancie une instance MultiPolygon vide.

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