الاسم
ST_ReducePrecision — تُعيد شكلاً هندسياً صالحاً بنقاط مقرّبة إلى تسامح شبكة.
المختصر
geometry ST_ReducePrecision(geometry g, float8 gridsize);
الوصف
تُعيد شكلاً هندسياً صالحاً بعد تقريب جميع نقاطه إلى تسامح الشبكة المُمرّر، وإزالة المعالم الأصغر من التسامح.
على خلاف ST_SnapToGrid، سيكون الشكل المُعاد صالحاً، بلا تقاطعات ذاتية في الحلقات ولا مكوّنات منهارة.
يمكن استخدام تقليل الدقة من أجل:
-
مطابقة دقة الإحداثيات مع دقة البيانات
-
تقليل عدد الإحداثيات اللازمة لتمثيل شكل هندسي
-
ضمان إخراج أشكال صالحة إلى صيغ تستخدم دقة أقل (مثل الصيغ النصية WKT وGeoJSON وKML عندما يكون عدد المنازل العشرية في الناتج محدوداً).
-
تصدير أشكال صالحة إلى أنظمة تستخدم دقة أقل أو محدودة (مثل SDE، وقيمة التسامح في Oracle)
متاحة منذ: 3.1.0.
تتطلب GEOS >= 3.9.0.
أمثلة
SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 0.1));
st_astext
-----------------
POINT(1.4 19.3)
SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 1.0));
st_astext
-------------
POINT(1 19)
SELECT ST_AsText(ST_ReducePrecision('POINT(1.412 19.323)', 10));
st_astext
-------------
POINT(0 20)
يمكن أن يقلّل تقليل الدقة عدد الرؤوس
SELECT ST_AsText(ST_ReducePrecision('LINESTRING (10 10, 19.6 30.1, 20 30, 20.3 30, 40 40)', 1));
st_astext
-------------
LINESTRING (10 10, 20 30, 40 40)
يُقسّم تقليل الدقة المضلعات عند الحاجة لضمان الصلاحية
SELECT ST_AsText(ST_ReducePrecision('POLYGON ((10 10, 60 60.1, 70 30, 40 40, 50 10, 10 10))', 10));
st_astext
-------------
MULTIPOLYGON (((60 60, 70 30, 40 40, 60 60)), ((40 40, 50 10, 10 10, 40 40)))