الاسم
ST_RemoveSmallParts — تزيل الأجزاء الصغيرة (حلقات المضلعات أو الخطوط) من شكل هندسي.
المختصر
geometry ST_RemoveSmallParts(geometry geom, double precision minSizeX, double precision minSizeY);
الوصف
تُعيد geometry دون الأجزاء الصغيرة (حلقات المضلعات الخارجية أو الداخلية، أو الخطوط).
يمكن استخدام هذه الدالة خطوةَ معالجة مسبقة لإنشاء خرائط مبسّطة، مثلًا لإزالة الجزر أو الثقوب الصغيرة.
لا تُقيِّم إلا الأشكال من نوع (MULTI)POLYGON و(MULTI)LINESTRING. وتبقى الأشكال الأخرى دون تغيير.
إذا كان minSizeX أكبر من 0، فتُستبعد الأجزاء التي يقل عرضها عن minSizeX.
إذا كان minSizeY أكبر من 0، فتُستبعد الأجزاء التي يقل ارتفاعها عن minSizeY.
يُقاس كلٌّ من minSizeX وminSizeY بوحدات النظام الإحداثي للشكل الهندسي.
بالنسبة لأنواع المضلعات، يجري التقييم لكل حلقة على حدة، ما قد يؤدي إلى إحدى النتائج الآتية:
-
الشكل الهندسي الأصلي،
-
POLYGON بجميع حلقاته مع رؤوس أقل،
-
POLYGON بعدد أقل من الحلقات الداخلية (ربما مع رؤوس أقل)،
-
POLYGON EMPTY، أو
-
MULTIPOLYGON بعدد أقل من المضلعات (ربما مع حلقات داخلية أو رؤوس أقل)، أو
-
MULTIPOLYGON EMPTY.
بالنسبة لأنواع الخطوط، يجري التقييم لكل خط، ما قد يؤدي إلى إحدى النتائج الآتية:
-
الشكل الهندسي الأصلي،
-
LINESTRING بعدد أقل من الرؤوس،
-
LINESTRING EMPTY،
-
MULTILINESTRING بعدد أقل من الخطوط (ربما مع رؤوس أقل)، أو
-
MULTILINESTRING EMPTY.
مثال: تطبيق ST_RemoveSmallParts() على مضلع متعدد. تبقى الأجزاء الزرقاء.
متاحة منذ: 3.5.0
أمثلة
SELECT ST_AsText(
ST_RemoveSmallParts(
ST_GeomFromText('MULTIPOLYGON(
((60 160, 120 160, 120 220, 60 220, 60 160), (70 170, 70 210, 110 210, 110 170, 70 170)),
((85 75, 155 75, 155 145, 85 145, 85 75)),
((50 110, 70 110, 70 130, 50 130, 50 110)))'),
50, 50));
st_astext
---------
MULTIPOLYGON(((60 160,120 160,120 220,60 220,60 160)),((85 75,155 75,155 145,85 145,85 75)))
SELECT ST_AsText(
ST_RemoveSmallParts(
ST_GeomFromText('LINESTRING(10 10, 20 20)'),
50, 50));
st_astext
---------
LINESTRING EMPTY