GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.4. دوال الوصول إلى الأشكال الهندسية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_Envelope

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

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

انظر أيضًا

Box2D, Box3D, ST_OrientedEnvelope