Tous les produits
Search
Centre de documentation

MaxCompute:ST_MAKEPOLYGON

Dernière mise à jour :Aug 26, 2026

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 ARRAY d’objets géographiques de type linestring.

Utilisez la fonction ST_MAKELINE pour créer des objets géographiques de type linestring. Respectez les contraintes suivantes :

  • Un linestring doit contenir au moins trois sommets distincts.

  • Un linestring doit être fermé : le premier et le dernier sommet doivent être identiques. Sinon, la fonction ferme automatiquement le linestring en 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 NULL ou si le tableau des trous contient un élément NULL, la fonction renvoie NULL.

  • 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)) |
+--------------------------------------------------------------------+

Rubriques connexes