Kategorien:

Geodatenfunktionen

ST_ENVELOPE

Gibt den minimalen Begrenzungsrahmen (eine rechteckige „Hülle“) zurück, der ein angegebenes Objekt vom Typ GEOGRAPHY oder GEOMETRY umschließt.

Syntax

ST_ENVELOPE( <geography_or_geometry_expression> )

Argumente

geography_or_geometry_expression

Das Argument muss vom Datentyp GEOGRAPHY oder GEOMETRY sein.

Rückgabewerte

Die Funktion gibt einen Wert vom Typ GEOGRAPHY oder GEOMETRY zurück, der den minimalen Begrenzungsrahmen um das -Eingabeobjekt repräsentiert.

Nutzungshinweise

  • GEOGRAPHY-Objekte:

    • Wenn geography_expression ein LineString-Objekt ist, der einen Meridianbogen (einen Bogen entlang einer Längengradlinie) repräsentiert, gibt ST_ENVELOPE dieses LineString-Objekt zurück.

    • Wenn geography_expression ein LineString ist, der einen Bogen auf einer anderen Parallele (einem Bogen entlang einer Breitengradlinie) als dem Äquator repräsentiert, gibt ST_ENVELOPE ein Polygon zurück, das den Begrenzungsrahmen für den Bogen repräsentiert.

    • Wenn geography_expression ein einzelner Punkt ist, gibt ST_ENVELOPE diesen Punkt zurück.

  • GEOMETRY-Objekte:

    • In degenerierten Fällen (z. B. wenn das Eingabeobjekt ein Punkt oder eine vertikale oder horizontale Linie ist) kann die Funktion eine Geometrie niedrigerer Dimension zurückgeben (d. h. einen Punkt oder einen LineString).

    • Bei GEOMETRY-Objekten hat das zurückgegebene GEOMETRY-Objekt dieselbe SRID wie das Eingabeobjekt.

Beispiele

GEOGRAPHY-Beispiele

Im folgenden Beispiel wird der minimale Begrenzungsrahmen für ein Polygon zurückgegeben:

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

Das folgende Beispiel übergibt ein LineString-Objekt, das einen Meridianbogen repräsentiert. Die Funktion gibt dasselbe LineString-Objekt anstelle eines Polygons zurück.

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

Das folgende Beispiel übergibt ein LineString-Objekt, das einen Bogen auf einer Parallele darstellt, die nicht der Äquator ist. Die Funktion gibt ein Polygon zurück, das den Begrenzungsrahmen repräsentiert:

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

Das folgende Beispiel wird in einem einzelnen Punkt übergeben. Die Funktion gibt denselben Punkt zurück:

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

GEOMETRY-Beispiele

Zurück zum Anfang