특정 지점으로부터 가장 가까운 지오메트리의 가장 가까운 교차점

아래의 이미지를 보면, Polyline 형태(GIS에서는 linestring이라는 용어를 사용함)의 레이어인 Link1가 있고, 빨간 포인트로 표시된 지점이 있다. 여기서.. Link1의 지오메트리 중 빨간 포인트에서 가장 가까운 녀석을 구하고, 이렇게 구한 녀석에 대해서 빨간 포인트와 가장 가까운 교차점을 구하고자 한다.

이러한 문제에 대해 해결할 수 있는 다양한 쿼리문 중 하나는 다음과 같다.

SELECT 
    fid,
    st_astext(
        st_closestpoint(
            the_geom, 
            st_geomfromtext('POINT(149761 265625)')
        )
    ),
    st_distance(
        st_closestpoint(
            the_geom, 
            st_geomfromtext('POINT(149761 265625)')
        ),
        st_geomfromtext('POINT(149761 265625)')
    ) as dist
FROM 
    network_link
ORDER BY 
    dist
LIMIT 1;

위 쿼리에 대한 결과는 아래와 같다.

ID가 557인 녀석이며, 예상했던 것처럼 교차점과 거리에 대한 결과를 볼 수 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다