Tous les produits
Search
Centre de documentation

AnalyticDB:Fonctions d'opération

Dernière mise à jour :Aug 10, 2026

Les fonctions d'opération calculent les relations spatiales et les transformations sur les valeurs GEOMETRY. Toutes les fonctions qui renvoient une valeur GEOMETRY produisent un résultat binaire ; encapsulez le résultat dans ST_AsText() pour obtenir du texte Well-Known Text (WKT) lisible.

Fonction Description
ST_Intersection(g1, g2) Renvoie l'intersection géométrique de g1 et g2
ST_Envelope(g) Renvoie le rectangle englobant minimal d'une géométrie
ST_Union(g1, g2) Renvoie l'union des ensembles de points de deux géométries
geometry_union(array[g1, g2, ...]) Renvoie l'union des ensembles de points d'un tableau de géométries
ST_Boundary(g) Renvoie la limite d'une géométrie sous forme d'une nouvelle géométrie
ST_EnvelopeAsPts(g) Renvoie les coins inférieur gauche et supérieur droit du rectangle englobant
ST_Difference(g1, g2) Renvoie la partie de g1 qui n'intersecte pas g2
ST_ExteriorRing(g1) Renvoie l'anneau extérieur d'un polygone sous forme de LINESTRING
ST_SymDifference(g1, g2) Renvoie les parties de g1 et g2 qui ne s'intersectent pas mutuellement

ST_Intersection

ST_Intersection(g1, g2)

Renvoie une géométrie représentant l'intersection de g1 et g2.

Type de renvoi : GEOMETRY

Exemple :

L'exécution directe de SELECT ST_Intersection(...) renvoie un résultat binaire. Utilisez ST_AsText() pour le convertir en texte lisible :

SELECT ST_AsText(ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)')));

Résultat :

+-----------------------------------------------------------------------------------------------------------------------+
| ST_AsText(ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)'))) |
+-----------------------------------------------------------------------------------------------------------------------+
| POINT (50 100)                                                                                                        |

Fonctions associées : ST_Union, ST_Difference, ST_SymDifference, ST_AsText

ST_Envelope

ST_Envelope(g)

Renvoie une représentation binaire du rectangle englobant minimal (enveloppe) qui contient la géométrie d'entrée.

Types d'entrée pris en charge : LINE, POLYGON, MULTILINE, MULTIPOLYGON

L'entrée de type POINT n'est pas prise en charge.

Type de renvoi : GEOMETRY

Exemple 1 — Enveloppe d'un LINESTRING :

SELECT ST_AsText(ST_Envelope(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3)')));

Résultat :

+---------------------------------------------------------------------------------+
| ST_AsText(ST_Envelope(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3)')))      |
+---------------------------------------------------------------------------------+
| POLYGON ((1 1, 2 1, 2 3, 1 3, 1 1))                                            |

Exemple 2 — Enveloppe d'un MULTIPOINT :

SELECT ST_AsText(ST_Envelope(ST_GeometryFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')));

Résultat :

+-------------------------------------------------------------------------------+
| ST_AsText(ST_Envelope(ST_GeometryFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)'))) |
+-------------------------------------------------------------------------------+
| POLYGON ((1 2, 4 2, 4 8, 1 8, 1 2))                                           |

Fonctions associées : ST_EnvelopeAsPts, ST_Boundary

ST_Union

ST_Union(g1, g2)

Renvoie une géométrie représentant l'union des ensembles de points de g1 et g2.

Type de renvoi : INT

Pour calculer l'union d'un tableau de géométries, utilisez geometry_union .

Exemple :

SELECT ST_ASText(ST_Union(ST_GeometryFromText('MULTIPOLYGON (((1 1, 3 1, 3 3, 1 3, 1 1)))'), ST_GeometryFromText('MULTIPOLYGON (((2 2, 4 2, 4 4, 2 4, 2 2)))')));

Résultat :

+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ST_ASText(ST_Union(ST_GeometryFromText('MULTIPOLYGON (((1 1, 3 1, 3 3, 1 3, 1 1)))'), ST_GeometryFromText('MULTIPOLYGON (((2 2, 4 2, 4 4, 2 4, 2 2)))')))    |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| POLYGON ((1 1, 3 1, 3 2, 4 2, 4 4, 2 4, 2 3, 1 3, 1 1))                                                                                                      |

Fonctions associées : geometry_union, ST_Intersection, ST_Difference, ST_SymDifference

geometry_union

geometry_union(array[g1, g2, ...])

Renvoie une géométrie représentant l'union des ensembles de points d'un tableau de géométries.

Type de renvoi : GEOMETRY

Pour calculer l'union d'exactement deux géométries, utilisez ST_Union .

Exemple :

SELECT ST_AsText(geometry_union(ARRAY[ST_Point(61.56, -158.54), ST_Point(61.56, -158.55)]));

Résultat :

+------------------------------------------------------------------------------------------------+
| ST_AsText(geometry_union(ARRAY[ST_Point(61.56, -158.54), ST_Point(61.56, -158.55)]))          |
+------------------------------------------------------------------------------------------------+
| MULTIPOINT ((61.56 -158.55), (61.56 -158.54))                                                 |

Fonctions associées : ST_Union

ST_Boundary

ST_Boundary(g)

Renvoie la limite de la géométrie d'entrée sous forme d'une nouvelle géométrie.

Type de renvoi : GEOMETRY

Exemple :

SELECT ST_AsText(ST_Boundary(ST_GeometryFromText('LINESTRING (8 4, 5 7)')));

Résultat :

+----------------------------------------------------------------------------+
| ST_AsText(ST_Boundary(ST_GeometryFromText('LINESTRING (8 4, 5 7)')))      |
+----------------------------------------------------------------------------+
| MULTIPOINT ((8 4), (5 7))                                                  |

Fonctions associées : ST_Envelope, ST_ExteriorRing

ST_EnvelopeAsPts

ST_EnvelopeAsPts(g)

Renvoie un tableau de deux valeurs POINT représentant les coins inférieur gauche et supérieur droit du rectangle englobant. Renvoie null si la géométrie d'entrée est vide.

Type de renvoi : Array[Geometry]

Exemple — une géométrie vide renvoie null :

SELECT ST_EnvelopeAsPts(ST_GeometryFromText('LINESTRING EMPTY'));

Résultat :

+-----------------------------------------------------------------+
| ST_EnvelopeAsPts(ST_GeometryFromText('LINESTRING EMPTY'))      |
+-----------------------------------------------------------------+
| null                                                            |

Fonctions associées : ST_Envelope

ST_Difference

ST_Difference(g1, g2)

Renvoie la partie de g1 qui n'intersecte pas g2.

Type de renvoi : GEOMETRY

L'ordre des paramètres est important. ST_Difference(A, B) renvoie toujours une portion de A, et non de B. Il s'agit de la seule fonction d'opération où l'inversion des arguments produit un résultat différent.

Exemple :

SELECT ST_AsText(ST_Difference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')));

Résultat :

+---------------------------------------------------------------------------------------------------------------+
| ST_AsText(ST_Difference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')))      |
+---------------------------------------------------------------------------------------------------------------+
| POINT (50 100)                                                                                                |

Le résultat correspond au POINT (50 100) complet car les deux points sont disjoints ; rien n'est soustrait.

Fonctions associées : ST_Intersection, ST_SymDifference, ST_Union

ST_ExteriorRing

ST_ExteriorRing(g1)

Renvoie l'anneau extérieur d'un polygone sous forme de LINESTRING.

Type de renvoi : GEOMETRY

Exemple :

SELECT ST_AsText(ST_ExteriorRing(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 1))')));

Résultat :

+------------------------------------------------------------------------------------+
| ST_AsText(ST_ExteriorRing(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 1))')))     |
+------------------------------------------------------------------------------------+
| LINESTRING (1 1, 4 1, 1 4, 1 1)                                                   |

Fonctions associées : ST_Boundary

ST_SymDifference

ST_SymDifference(g1, g2)

Renvoie les parties de g1 et g2 qui ne s'intersectent pas mutuellement.

Type de renvoi : GEOMETRY

Exemple :

SELECT ST_AsText(ST_SymDifference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (50 150)')));

Résultat :

+--------------------------------------------------------------------------------------------------------------+
| ST_AsText(ST_SymDifference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (50 150)')))   |
+--------------------------------------------------------------------------------------------------------------+
| MULTIPOINT ((50 100), (50 150))                                                                              |

Les deux points étant disjoints, la différence symétrique correspond à la combinaison des deux points.

Fonctions associées : ST_Difference, ST_Union, ST_Intersection

Notes d'utilisation

  • Sortie binaire : Toutes les fonctions renvoyant un type GEOMETRY produisent une sortie binaire lorsqu'elles sont utilisées dans une instruction SELECT simple. Encapsulez toujours l'appel de fonction avec ST_AsText() pour obtenir une sortie WKT lisible.

  • ST_Difference est asymétrique : ST_Difference(A, B) renvoie toujours un sous-ensemble de A. L'inversion des arguments produit un résultat différent.

  • ST_Envelope ne prend pas en charge l'entrée de type POINT. Le passage d'une géométrie POINT à ST_Envelope n'est pas pris en charge.

  • MULTILINE : AnalyticDB for MySQL utilise MULTILINE comme type de ligne multi-segments. Le type équivalent selon la norme OGC est MULTILINESTRING.