Catégories :

Fonctions géospatiales

ST_ENVELOPE

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

Syntaxe

ST_ENVELOPE( <geography_expression> )

Arguments

expression_géographie

L’argument doit être de type GEOGRAPHY.

Renvoie

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

Notes sur l’utilisation

  • Si expression_géographie 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 expression_géographie 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 expression_géographie est un point unique, ST_ENVELOPE renvoie ce point.

Exemples

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

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

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

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