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