동일한 지오메트리 테이블에서 두 점에 대한 간단한 PostGIS ST_Distance 쿼리?


11

참고 :이 질문은 처음 에 Stackoverflow에 게시되었습니다 .

지오메트리 테이블 points_tableSRID 4326몇 개의 점이 있습니다.

이 테이블에서 한 쌍의 점 (기능) 사이의 거리를 찾아야합니다.

한 점 id = X과 다른 점을 id = Y선택한 다음 ST_Distance기능을 사용 하여 점 사이의 거리를 찾고 싶습니다 .

데이터베이스에서이 두 지점을 쿼리하는 방법을 알고 있습니다.

select * from points_table where id = X or id = Y;

그러나이 쿼리 는 2 개의 매개 변수를 사용 ST_Distance하기 때문에 전달하는 방법을 모르는 결과를 반환합니다 ST_Distance.

나는 시도했다 Select ST_Distance(select the_geom from points_table where id = X or id = Y);

그러나 분명히 잘못되었습니다.

테이블에서 두 형상 점 (기능) 사이의 거리를 어떻게 찾을 수 있습니까?

PS 지금까지 찾은 모든 예제 는 ST_Distance 함수의 인수로 하드 코딩 된 포인트와 함께 ST_Distance 사용법을 보여줍니다 . ST_Distance를 사용하여 동일한 테이블에서 두 점 사이의 거리를 계산하는 예제를 찾지 못했습니다.

답변:


28

다른 별칭을 지정하여 테이블을 두 번 참조해야합니다.

SELECT ST_Distance(a.geom, b.geom)
FROM points_table a, points_table b
WHERE a.id='x' AND b.id='y';
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.