الاسم
ST_Contains — تُعيد true إذا لم تقع أي نقطة من الرستر rastB خارج الرستر rastA، ووقعت نقطة واحدة على الأقل من داخل rastB في داخل rastA.
المختصر
boolean ST_Contains( raster rastA , integer nbandA , raster rastB , integer nbandB );
boolean ST_Contains( raster rastA , raster rastB );
الوصف
يحتوي الرستر rastA الرستر rastB إذا وفقط إذا لم تقع أي نقطة من rastB خارج rastA، ووقعت نقطة واحدة على الأقل من داخل rastB في داخل rastA. إذا لم يُحدَّد رقم النطاق (أو عُيّن إلى NULL)، يؤخذ في الاختبار الغلاف المحدب للرستر فقط. وإذا حُدِّد رقم النطاق، تؤخذ في الاختبار البكسلات ذات القيم (غير NODATA) فقط.
|
|
|
تستفيد هذه الدالة من أي فهارس قد تكون متاحة على الرسترات. |
|
|
|
لاختبار العلاقة المكانية بين رستر وشكل هندسي، استخدم ST_Polygon على الرستر، مثل ST_Contains(ST_Polygon(raster), geometry) أو ST_Contains(geometry, ST_Polygon(raster)). |
|
|
|
ST_Contains() هي معكوس ST_Within(). لذا فإن ST_Contains(rastA, rastB) تستلزم ST_Within(rastB, rastA). |
متاحة منذ: 2.1.0
أمثلة
-- specified band numbers
SELECT r1.rid, r2.rid, ST_Contains(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;
NOTICE: The first raster provided has no bands
rid | rid | st_contains
-----+-----+-------------
1 | 1 |
1 | 2 | f
-- no band numbers specified
SELECT r1.rid, r2.rid, ST_Contains(r1.rast, r2.rast) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;
rid | rid | st_contains
-----+-----+-------------
1 | 1 | t
1 | 2 | f