- 类别:
ST_ENVELOPE¶
返回包围指定的 GEOGRAPHY 或 GEOMETRY 对象的最小边界框(矩形“信封”)。
语法¶
ST_ENVELOPE( <geography_or_geometry_expression> )
实参¶
geography_or_geometry_expression
实参的类型必须为 GEOGRAPHY 或 GEOMETRY。
返回¶
使用说明¶
对于 GEOGRAPHY 对象:
如果
geography_expression
是表示子午线弧(沿经线的弧)的 LineString,则 ST_ENVELOPE 返回该 LineString。如果
geography_expression
是表示除赤道之外的平行线上的弧(沿纬线的弧)的 LineString,则 ST_ENVELOPE 返回表示弧的边界框的多边形。如果
geography_expression
是单个点,则 ST_ENVELOPE 返回该点。
对于 GEOMETRY 对象:
在简并情况下(例如,输入是一个点或一条垂直线或水平线),该函数可能会返回较低维度的几何图形(即点或 LineString)。
对于 GEOMETRY 对象,返回的 GEOMETRY 对象的 SRID 与输入相同。
示例¶
GEOGRAPHY 示例¶
以下示例返回多边形的最小边界框:
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)) | +-----------------------------------------------------------------------------------------------------------------------+
以下示例传入表示子午线弧的 LineString。该函数返回相同的 LineString,而不是多边形。
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) | +-------------------------------------------------------+
以下示例传入表示非赤道平行线上弧的 LineString。该函数返回一个表示边界框的多边形:
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)) | +---------------------------------------------------------------------------------------------------------------------+
以下示例传入单个点。该函数返回相同的点:
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) | +-----------------------------------+