الاسم
GetNodeByPoint — تبحث عن معرّف العقدة (node-id) لعقدة عند موقع نقطي.
المختصر
bigint GetNodeByPoint(varchar atopology, geometry apoint, float8 tol1);
الوصف
تسترجع معرّف عقدة عند موقع نقطي.
تُعيد الدالة عددًا صحيحًا (id-node) بإعطائها طوبولوجيا ونقطة POINT وتسامح. التسامح = 0 تعني تقاطعًا تامًا، وإلا فإنها تسترجع العقدة ضمن مجال.
إذا لم تتقاطع apoint مع عقدة، تُعيد 0 (صفر).
إذا استُخدمت تسامح > 0 وكانت هناك أكثر من عقدة قريبة من النقطة فسيُطلق استثناء.
|
|
|
إذا كانت التسامح = 0 تستخدم الدالة ST_Intersects، وإلا فتستخدم ST_DWithin. |
تُنفَّذ بواسطة وحدة GEOS.
متاحة منذ: 2.0.0
أمثلة
تستخدم هذه الأمثلة الحواف التي أنشأناها في AddEdge
SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode
FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;
nearnode
----------
2
SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance
FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;
----get error--
ERROR: Two or more nodes found