GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.19. الإسناد الخطي
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_LineInterpolatePoint

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

الاسم

ST_LineInterpolatePoint — تُعيد نقطة مُستكمَلة على امتداد خط عند موقع كسري.

المختصر

geometry ST_LineInterpolatePoint(geometry a_linestring, float8 a_fraction);

geography ST_LineInterpolatePoint(geography a_linestring, float8 a_fraction, boolean use_spheroid = true);

الوصف

تُعيد نقطة مُستكمَلة على امتداد خط عند موقع كسري. يجب أن يكون الوسيط الأول LINESTRING. والوسيط الثاني عدد عشري بين 0 و1 يمثّل نسبة طول الخط التي تقع عندها النقطة. وتُستكمَل قيم Z وM إن وُجدت.

انظر ST_LineLocatePoint لحساب أقرب موقع على الخط إلى نقطة.

[ملاحظة]

تحسب هذه الدالة النقاط في بُعدين ثم تستكمل قيم Z وM، بينما تحسب ST_3DLineInterpolatePoint النقاط في ثلاثة أبعاد وتستكمل قيمة M فقط.

[ملاحظة]

منذ الإصدار 1.1.1 تستكمل هذه الدالة أيضًا قيم M وZ (عند وجودها)، بينما كانت الإصدارات السابقة تضبطها على 0.0.

متاحة منذ: 0.8.2، وأُضيف دعم Z وM في 1.1.1

تغيّرت في: 2.1.0. حتى الإصدار 2.0.x كانت تُسمّى ST_Line_Interpolate_Point.

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

أمثلة

خط (LineString) مع النقطة المُستكمَلة عند الموضع 20% (0.20)

-- The point 20% along a line

SELECT ST_AsEWKT(  ST_LineInterpolatePoint(
        'LINESTRING(25 50, 100 125, 150 190)',
        0.2 ));
----------------
 POINT(51.5974135047432 76.5974135047432)

نقطة المنتصف لخط ثلاثي الأبعاد:

SELECT ST_AsEWKT(  ST_LineInterpolatePoint('
        LINESTRING(1 2 3, 4 5 6, 6 7 8)',
        0.5 ));
--------------------
 POINT(3.5 4.5 5.5)

أقرب نقطة على خط إلى نقطة:

SELECT ST_AsText( ST_LineInterpolatePoint( line.geom,
                      ST_LineLocatePoint( line.geom, 'POINT(4 3)')))
FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As geom) AS line;
------------
 POINT(3 4)