Catégories :

Fonctions géospatiales

ST_MAKEPOLYGON , ST_POLYGON

Construit un objet GEOGRAPHY ou GEOMETRY qui représente un polygone sans trous. La fonction utilise la LineString spécifiée comme boucle externe.

Cette fonction corrige l’orientation de la boucle pour empêcher la création de polygones qui s’étendent sur plus de la moitié du globe. En revanche, ST_MAKEPOLYGONORIENTED ne tente pas de corriger l’orientation de la boucle.

Voir aussi :

TO_GEOGRAPHY , TO_GEOMETRY , ST_MAKEPOLYGONORIENTED

Syntaxe

ST_MAKEPOLYGON( <geography_or_geometry_expression> )
Copy

Arguments

geography_or_geometry_expression

Un objet GEOGRAPHY ou GEOMETRY qui représente un LineString dans lequel le dernier point est le même que le premier (c’est-à-dire une boucle).

Renvoie

La fonction renvoie une valeur de type GEOGRAPHY ou GEOMETRY.

Notes sur l’utilisation

  • Les lignes du polygone doivent former une boucle. En d’autres termes, le dernier point de la séquence de points définissant la LineString doit être le même point que le premier point de la séquence.

  • ST_POLYGON est un alias pour ST_MAKEPOLYGON.

  • Pour les objets GEOMETRY, l’objet GEOMETRY renvoyé a le même SRID que l’entrée.

Exemples

Exemples GEOGRAPHY

Cela montre une utilisation simple de la fonction ST_MAKEPOLYGON. La séquence de points ci-dessous définit une zone géodésique rectangulaire de 1 degré de large et de 2 degrés de haut, le coin inférieur gauche du polygone commençant à l’équateur (latitude) et à Greenwich (longitude). Le dernier point de la séquence est le même que le premier point, qui complète la boucle.

SELECT ST_MAKEPOLYGON(
   TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
   ) AS polygon1;
+--------------------------------+
| POLYGON1                       |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy

Exemples GEOMETRY

Cela montre une utilisation simple de la fonction ST_MAKEPOLYGON.

SELECT ST_MAKEPOLYGON(
  TO_GEOMETRY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
  ) AS polygon;
Copy
+--------------------------------+
| POLYGON                        |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy