GetEdgeByPoint — Finds the edge-id of an edge that intersects a given point.
integer GetEdgeByPoint(
varchar atopology, geometry apoint, float8 tol1)
;
Retrieves the id of an edge that intersects a Point.
이 함수는 지형, 포인트, 그리고 허용 오차를 입력받아 정수(edgeid)를 반환합니다. tolerance = 0일 경우 포인트와 경계선이 교차해야 합니다.
If apoint
doesn't intersect an edge, returns 0 (zero).
0보다 큰 허용 오차를 설정했는데 포인트 가까이에 하나 이상의 경계선이 있을 경우 예외가 발생합니다.
이 함수는 tolerance = 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