Catégories :

Fonctions géospatiales

ST_ENVELOPE

Renvoie la zone de délimitation minimale (une « enveloppe » rectangulaire) qui entoure un objet GEOGRAPHY ou GEOMETRY spécifié.

Syntaxe

ST_ENVELOPE( <geography_or_geometry_expression> )
Copy

Arguments

geography_or_geometry_expression

L’argument doit être de type GEOGRAPHY ou GEOMETRY.

Renvoie

La fonction renvoie une valeur de type GEOGRAPHY ou GEOMETRY qui représente la zone de délimitation minimale autour de l’objet d’entrée.

Notes sur l’utilisation

  • Pour les objets GEOGRAPHY :

    • Si geography_expression est un LineString qui représente un arc méridien (un arc le long d’une ligne de longitude), ST_ENVELOPE renvoie ce LineString.

    • Si geography_expression est un LineString qui représente un arc sur un parallèle (un arc le long d’une ligne de latitude) autre que l’équateur, ST_ENVELOPE renvoie un polygone qui représente la zone de délimitation de l’arc.

    • Si geography_expression est un point unique, ST_ENVELOPE renvoie ce point.

  • Pour les objets GEOMETRY :

    • Dans les cas dégénérés (par exemple, lorsque l’entrée est un point ou une ligne verticale ou horizontale), la fonction peut renvoyer une géométrie de dimension inférieure (c’est-à-dire un point ou LineString).

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

Exemples

Exemples GEOGRAPHY

L’exemple suivant renvoie la zone de délimitation minimale d’un polygone :

SELECT ST_ENVELOPE(
    TO_GEOGRAPHY(
        'POLYGON((-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852, -122.306067 37.55412))'
    )
) as minimum_bounding_box_around_polygon;
+-----------------------------------------------------------------------------------------------------------------------+
| MINIMUM_BOUNDING_BOX_AROUND_POLYGON                                                                                   |
|-----------------------------------------------------------------------------------------------------------------------|
| POLYGON((-122.325879 37.55412,-122.306067 37.55412,-122.306067 37.586852,-122.325879 37.586852,-122.325879 37.55412)) |
+-----------------------------------------------------------------------------------------------------------------------+
Copy

L’exemple suivant valide un LineString qui représente un arc méridien. La fonction renvoie le même LineString, plutôt qu’un polygone.

SELECT ST_ENVELOPE(
    TO_GEOGRAPHY(
        'LINESTRING(-122.32328 37.561801, -122.32328 37.562001)'
    )
) as minimum_bounding_box_around_meridian_arc;
+-------------------------------------------------------+
| MINIMUM_BOUNDING_BOX_AROUND_MERIDIAN_ARC              |
|-------------------------------------------------------|
| LINESTRING(-122.32328 37.561801,-122.32328 37.562001) |
+-------------------------------------------------------+
Copy

L’exemple suivant valide un LineString qui représente un arc sur un parallèle qui n’est pas l’équateur. La fonction renvoie un polygone qui représente la zone de délimitation :

SELECT ST_ENVELOPE(
    TO_GEOGRAPHY(
        'LINESTRING(-122.32328 37.561801,-122.32351 37.561801)'
    )
) as minimum_bounding_box_around_arc_along_parallel;
+---------------------------------------------------------------------------------------------------------------------+
| MINIMUM_BOUNDING_BOX_AROUND_ARC_ALONG_PARALLEL                                                                      |
|---------------------------------------------------------------------------------------------------------------------|
| POLYGON((-122.32351 37.561801,-122.32328 37.561801,-122.32328 37.561801,-122.32351 37.561801,-122.32351 37.561801)) |
+---------------------------------------------------------------------------------------------------------------------+
Copy

L’exemple suivant valide un point unique. La fonction renvoie le même point :

SELECT ST_ENVELOPE(
    TO_GEOGRAPHY(
        'POINT(-122.32328 37.561801)'
    )
) as minimum_bounding_box_around_point;
+-----------------------------------+
| MINIMUM_BOUNDING_BOX_AROUND_POINT |
|-----------------------------------|
| POINT(-122.32328 37.561801)       |
+-----------------------------------+
Copy

Exemples GEOMETRY