GISarabia.org
PostGIS › الدليل الرسمي › 9. الطوبولوجيا › 9.7. دوال الوصول إلى الطوبولوجيا
PostGIS 3.6 · Official Manual · ترجمة عربية

GetEdgeByPoint

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

الاسم

GetEdgeByPoint — تبحث عن معرّف الحافة (edge-id) لحافة تتقاطع مع نقطة معطاة.

المختصر

bigint GetEdgeByPoint(varchar atopology, geometry apoint, float8 tol1);

الوصف

تسترجع معرّف حافة تتقاطع مع نقطة.

تُعيد الدالة عددًا صحيحًا (id-edge) بإعطائها طوبولوجيا ونقطة POINT وتسامح. إذا كانت التسامح = 0 فيجب أن تتقاطع النقطة مع الحافة.

إذا لم تتقاطع apoint مع حافة، تُعيد 0 (صفر).

إذا استُخدمت تسامح > 0 وكانت هناك أكثر من حافة قريبة من النقطة فسيُطلق استثناء.

[ملاحظة]

إذا كانت التسامح = 0 تستخدم الدالة ST_Intersects، وإلا فتستخدم ST_DWithin.

تُنفَّذ بواسطة وحدة GEOS.

متاحة منذ: 2.0.0

أمثلة

تستخدم هذه الأمثلة الحواف التي أنشأناها في AddEdge

SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology.GetEdgeByPoint('ma_topo',geom,0) As withnotol
FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;
 with1mtol | withnotol
-----------+-----------
         2 |         0
SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode
FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;

-- get error --
ERROR:  Two or more edges found

انظر أيضًا

AddEdge, GetNodeByPoint, GetFaceByPoint