الاسم
ST_Envelope — تُعيد شكلًا هندسيًا يمثل المستطيل المحيط بالشكل الهندسي.
المختصر
geometry ST_Envelope(geometry g1);
الوصف
تُعيد أصغر مستطيل محيط بدقة مضاعفة (float8) للشكل الهندسي المُعطى، بوصفه شكلًا هندسيًا. يُعرَّف المضلع بنقاط زوايا المستطيل المحيط ((MINX, MINY), (MINX, MAXY), (MAXX, MAXY), (MAXX, MINY), (MINX, MINY)). (وسيضيف PostGIS إحداثي ZMIN/ZMAX أيضًا).
الحالات المنحلّة (الخطوط الرأسية، النقاط) ستُعيد شكلًا هندسيًا ذا بُعد أدنى من POLYGON، أي POINT أو LINESTRING.
متاحة منذ: 1.5.0 تغيّر السلوك لإخراج دقة مضاعفة (double precision) بدلًا من float4
تطبّق هذه الدالة مواصفة OGC Simple Features Implementation Specification for SQL 1.1. s2.1.1.1
تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM 3: 5.1.19
أمثلة
SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));
st_astext
------------
POINT(1 3)
(1 row)
SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));
st_astext
--------------------------------
POLYGON((0 0,0 3,1 3,1 0,0 0))
(1 row)
SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 0))'::geometry));
st_astext
--------------------------------------------------------------
POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))
(1 row)
SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, 1.0000000001 0, 0 0))'::geometry));
st_astext
--------------------------------------------------------------
POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))
(1 row)
SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As envelopewkt
FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, 1.0000001 0, 0 0))'::geometry As geom) As foo;
غلاف نقطة وخط.
SELECT ST_AsText(ST_Envelope(
ST_Collect(
ST_GeomFromText('LINESTRING(55 75,125 150)'),
ST_Point(20, 80))
)) As wktenv;
wktenv
-----------
POLYGON((20 75,20 150,125 150,125 75,20 75))