La fonction ST_MAKEPOLYGON construit un objet géographique de type polygon à partir d’une enveloppe spécifiée et de zéro ou plusieurs trous.
Syntaxe
GEOGRAPHY ST_MAKEPOLYGON(GEOGRAPHY <shell>[, ARRAY<GEOGRAPHY> <holes>])
Paramètres
shell : Obligatoire. Objet géographique de type
linestring.holes : Facultatif. Tableau
ARRAYd’objets géographiques de typelinestring.
Utilisez la fonction ST_MAKELINE pour créer des objets géographiques de type linestring. Respectez les contraintes suivantes :
Un
linestringdoit contenir au moins trois sommets distincts.Un
linestringdoit être fermé : le premier et le dernier sommet doivent être identiques. Sinon, la fonction ferme automatiquement lelinestringen ajoutant un segment reliant le dernier sommet au premier.
Valeur renvoyée
Renvoie un objet géographique de type polygon. Les règles suivantes s’appliquent :
Si l’un des arguments d’entrée est
NULLou si le tableau des trous contient un élémentNULL, la fonction renvoieNULL.Si l’un des objets géographiques d’entrée est vide, la fonction renvoie une erreur.
Les limitations de précision de la bibliothèque S2 Geometry Library peuvent entraîner de légères différences entre les données d’entrée et de sortie.
Exemples
-- Create a polygon from a shell without any holes
SELECT ST_MAKEPOLYGON(ST_GEOGFROMTEXT('LINESTRING(0 0, 1 0, 1 1)'));
-- Result:
+--------------------------------+
| _c0 |
+--------------------------------+
| POLYGON ((0 0, 1 0, 1 1, 0 0)) |
+--------------------------------+
-- Create a polygon with both a shell and a hole
SELECT ST_MAKEPOLYGON(ST_GEOGFROMTEXT('LINESTRING(0 0, 10 0, 10 10, 0 10, 0 0)'), ARRAY(ST_GEOGFROMTEXT('LINESTRING(2 2, 2 4, 4 4, 4 2, 2 2)')));
-- Result:
+--------------------------------------------------------------------+
| _c0 |
+--------------------------------------------------------------------+
| POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (4 2, 4 4, 2 4, 2 2, 4 2)) |
+--------------------------------------------------------------------+