الاسم
ST_GeneratePoints — تُولّد نقاطاً متعددة (multipoint) من نقاط عشوائية واقعة داخل Polygon أو MultiPolygon.
المختصر
geometry ST_GeneratePoints(geometry g, integer npoints, integer seed = 0);
الوصف
تُولّد ST_GeneratePoints نقاطاً متعددة (multipoint) مكوّنة من عدد معيّن من النقاط شبه العشوائية الواقعة داخل المساحة المُدخلة. يُستخدم المعامل الاختياري seed لإعادة توليد تسلسل حتمي من النقاط، ويجب أن يكون أكبر من الصفر.
متاحة منذ: 2.3.0
حُسّنت في: 3.0.0، أُضيف المعامل seed
أمثلة
نقاط متعددة مُولّدة مكوّنة من 12 نقطة معروضة فوق المضلع الأصلي باستخدام قيمة بذرة عشوائية 1996
SELECT ST_GeneratePoints(geom, 12, 1996)
FROM (
SELECT ST_Buffer(
ST_GeomFromText(
'LINESTRING(50 50,150 150,150 50)'),
10, 'endcap=round join=round') AS geom
) AS s;
بالنظر إلى جدول مضلعات s، تُعاد 12 نقطة منفردة لكل مضلع. ستختلف النتائج في كل مرة تُشغّل فيها الاستعلام.
SELECT s.id, dp.path[1] AS pt_id, dp.geom FROM s, ST_DumpPoints(ST_GeneratePoints(s.geom,12)) AS dp;