- Categorias:
ST_ENVELOPE¶
Retorna a caixa delimitadora mínima (um “envelope” retangular) que contém um objeto especificado GEOGRAPHY ou GEOMETRY.
Sintaxe¶
ST_ENVELOPE( <geography_or_geometry_expression> )
Argumentos¶
geography_or_geometry_expression
O argumento deve ser do tipo GEOGRAPHY ou GEOMETRY.
Retornos¶
A função retorna um valor do tipo GEOGRAPHY ou GEOMETRY que representa a caixa delimitadora mínima em torno do objeto de entrada.
Notas de uso¶
Para objetos GEOGRAPHY:
Se
geography_expression
for um LineString que representa um arco de meridiano (um arco ao longo de uma linha de longitude), ST_ENVELOPE retornará que LineString.Se
geography_expression
for um LineString que representa um arco em paralelo (um arco ao longo de uma linha de latitude) diferente do equador, ST_ENVELOPE retorna um polígono que representa a caixa delimitadora do arco.Se
geography_expression
for um único ponto, ST_ENVELOPE devolve esse ponto.
Para objetos GEOMETRY:
Em casos degenerados (por exemplo, quando a entrada é um ponto ou uma linha vertical ou horizontal), a função pode retornar uma geometria de dimensão menor (ou seja, um ponto ou um LineString).
Para objetos GEOMETRY, o objeto GEOMETRY retornado tem o mesmo SRID que a entrada.
Exemplos¶
Exemplos GEOGRAPHY¶
O exemplo a seguir retorna a caixa delimitadora mínima para um polígono:
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)) | +-----------------------------------------------------------------------------------------------------------------------+
O seguinte exemplo passa em um LineString que representa um arco de meridiano. A função retorna o mesmo LineString, em vez de um polígono.
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) | +-------------------------------------------------------+
O exemplo seguinte passa em um LineString que representa um arco em um paralelo que não é o equador. A função retorna um polígono que representa a caixa delimitadora:
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)) | +---------------------------------------------------------------------------------------------------------------------+
O exemplo a seguir passa em um único ponto. A função retorna o mesmo ponto:
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) | +-----------------------------------+