الاسم
ST_Expand — تُعيد مستطيلًا محيطًا موسّعًا من مستطيل محيط آخر أو من شكل هندسي.
المختصر
geometry ST_Expand(geometry geom, float units_to_expand);
geometry ST_Expand(geometry geom, float dx, float dy, float dz=0, float dm=0);
box2d ST_Expand(box2d box, float units_to_expand);
box2d ST_Expand(box2d box, float dx, float dy);
box3d ST_Expand(box3d box, float units_to_expand);
box3d ST_Expand(box3d box, float dx, float dy, float dz=0);
الوصف
تُعيد مستطيلًا محيطًا موسّعًا من المستطيل المحيط بالمُدخل، إما بتحديد مسافة واحدة يُوسَّع بها المستطيل على المحورين، أو بتحديد مسافة توسيع لكل محور. تستخدم الدقة المضاعفة. ويمكن استخدامها في استعلامات المسافة، أو لإضافة مرشّح مستطيل محيط إلى استعلام للاستفادة من الفهرس المكاني.
إضافة إلى صيغة ST_Expand التي تقبل geometry وتُعيده، تتوفر صيغ تقبل أنواع البيانات box2d وbox3d وتُعيدها.
المسافات بوحدات النظام المرجعي المكاني للمُدخل.
تشبه ST_Expand الدالة ST_Buffer، إلا أن النطاق العازل يوسّع الشكل الهندسي في جميع الاتجاهات، بينما توسّع ST_Expand المستطيل المحيط على امتداد كل محور.
|
|
|
قبل الإصدار 1.3، كانت ST_Expand تُستخدم مع ST_Distance لإجراء استعلامات مسافة تستفيد من الفهرس. على سبيل المثال: |
متاحة منذ: 1.5.0 تغيّر السلوك لإخراج إحداثيات بدقة مضاعفة (double precision) بدلًا من float4.
حُسّنت في: 2.0.0 أُضيف دعم الأسطح متعددة الوجوه والمثلثات وTIN.
حُسّنت في: 2.3.0 أُضيف دعم توسيع المستطيل بمقادير مختلفة في الأبعاد المختلفة.
تدعم هذه الدالة الأسطح متعددة الوجوه (Polyhedral surfaces).
تدعم هذه الدالة المثلثات وأسطح الشبكات المثلثية غير المنتظمة (TIN).
أمثلة
|
|
|
تستخدم الأمثلة أدناه إسقاط US National Atlas Equal Area (SRID=2163) وهو إسقاط بوحدة المتر |
--10 meter expanded box around bbox of a linestring
SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 110701,2312892 110714)', 2163),10) As box2d);
st_expand
------------------------------------
BOX(2312882 110666,2312990 110724)
--10 meter expanded 3D box of a 3D box
SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' As box3d),10)
st_expand
-----------------------------------------------------
BOX3D(778773 2951731 -9,794885 2970052.61545891 20)
--10 meter geometry astext rep of a expand box around a point geometry
SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 110676)'),10));
st_asewkt
-------------------------------------------------------------------------------------------------
SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 110666,2312970 110666))