GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.11.1. العلاقات الطوبولوجية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_CoveredBy

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

الاسم

ST_CoveredBy — تختبر ما إذا كانت كل نقطة من A تقع في B

المختصر

boolean ST_CoveredBy(geometry geomA, geometry geomB);

boolean ST_CoveredBy(geography geogA, geography geogB);

الوصف

تُعيد true إذا وقعت كل نقطة في Geometry/Geography ‏A داخل Geometry/Geography ‏B (أي تتقاطع مع داخله أو حدوده). وبصورة مكافئة، تختبر أنه لا توجد نقطة من A تقع خارج B (في خارجه).

بالصيغة الرياضية: ST_CoveredBy(A, B) ⇔ A ⋂ B = A

ST_CoveredBy هي عكس ST_Covers. لذا فإن ST_CoveredBy(A,B) = ST_Covers(B,A).

يُفضَّل عمومًا استخدام هذه الدالة بدلًا من ST_Within، لأن تعريفها أبسط ولا يتضمن الخاصية الغريبة «الحدود لا تقع داخل شكلها الهندسي».

[ملاحظة]

تتضمن هذه الدالة تلقائيًا مقارنةً للمستطيل المحيط تستفيد من أي فهارس مكانية متاحة على الأشكال الهندسية. لتجنب استخدام الفهرس، استخدم الدالة _ST_CoveredBy.

[هام]

حُسّنت في: 3.0.0 فُعّل دعم GEOMETRYCOLLECTION

[هام]

لا تستخدم هذه الدالة مع أشكال هندسية غير صالحة. ستحصل على نتائج غير متوقعة.

تُنفَّذ بواسطة وحدة GEOS

متاحة منذ: 1.2.2

ملاحظة: هذا هو الإصدار «المسموح به» الذي يُعيد قيمة منطقية (boolean)، وليس عددًا صحيحًا.

ليست معيارًا من OGC، لكنها موجودة في Oracle أيضًا.

أمثلة

--a circle coveredby a circle
SELECT ST_CoveredBy(smallc,smallc) As smallinsmall,
  ST_CoveredBy(smallc, bigc) As smallcoveredbybig,
  ST_CoveredBy(ST_ExteriorRing(bigc), bigc) As exteriorcoveredbybig,
  ST_Within(ST_ExteriorRing(bigc),bigc) As exeriorwithinbig
FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,
  ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;
  --Result
 smallinsmall | smallcoveredbybig | exteriorcoveredbybig | exeriorwithinbig
--------------+-------------------+----------------------+------------------
 t            | t                 | t                    | f
(1 row)