الاسم
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