GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.14. معالجة الأشكال الهندسية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_PointOnSurface

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

ST_PointOnSurface — تحسب نقطة مضمونة الوقوع داخل مضلع أو على شكل هندسي.

المختصر

geometry ST_PointOnSurface(geometry g1);

الوصف

تُعيد POINT مضمونة الوقوع داخل سطح (POLYGON وMULTIPOLYGON وCURVEPOLYGON). وفي PostGIS تعمل هذه الدالة أيضاً على الأشكال الخطية والنقطية.

تطبّق هذه الدالة مواصفة OGC Simple Features Implementation Specification for SQL 1.1. s3.2.14.2 // s3.2.18.2

تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM 3: 8.1.5, 9.5.6. تُعرّف المواصفات ST_PointOnSurface للأشكال السطحية فقط. ويوسّع PostGIS الدالة لتدعم جميع أنواع الأشكال الهندسية الشائعة. ويبدو أن قواعد البيانات الأخرى (Oracle وDB2 وArcSDE) لا تدعم هذه الدالة إلا للأسطح. أما SQL Server 2008 فيدعم جميع أنواع الأشكال الشائعة.

تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة Z.

أمثلة

نقطة على سطح MULTIPOINT

نقطة على سطح LINESTRING

نقطة على سطح POLYGON

نقطة على سطح GEOMETRYCOLLECTION

SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));
------------
 POINT(0 5)

SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry));
------------
 POINT(0 5)

SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::geometry));
----------------
 POINT(2.5 2.5)

SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, 0 10 2)')));
----------------
 POINT(0 0 1)

مثال: نتيجة ST_PointOnSurface مضمونة الوقوع داخل المضلعات، في حين قد تقع النقطة التي تحسبها ST_Centroid خارجها.

الأحمر: نقطة على السطح؛ الأخضر: المركز

SELECT ST_AsText(ST_PointOnSurface(geom)) AS pt_on_surf,
       ST_AsText(ST_Centroid(geom)) AS centroid
    FROM (SELECT 'POLYGON ((130 120, 120 190, 30 140, 50 20, 190 20,
                      170 100, 90 60, 90 130, 130 120))'::geometry AS geom) AS t;

   pt_on_surf    |                  centroid
-----------------+---------------------------------------------
 POINT(62.5 110) | POINT(100.18264840182648 85.11415525114155)

انظر أيضًا

ST_Centroid, ST_MaximumInscribedCircle