PostGIS 데이터베이스 (Postgres 8.4.1의 PostGIS 1.5)에는 도로 (선 스트링으로 구성)와 충돌 (포인트로 구성)의 두 가지 테이블이 있습니다. 각 충돌을 도로와 연관 시키려고했지만 다음 작업을 수행하는 데 문제가 있습니다.
SELECT ST_ClosestPoint(road.the_geom, crash.the_geom),
ST_Intersects(ST_ClosestPoint(road.the_geom, crash.the_geom), road.the_geom)
ST_Distance(ST_ClosestPoint(road.the_geom, crash.the_geom), crash.the_geom) AS distance
FROM
--Table crashes is already in SRID 4326
(SELECT the_geom FROM crashes WHERE gid = 360) as crash,
(SELECT ST_SetSrid(the_geom, 4326) as the_geom from roads) as road
ORDER BY distance;
이 쿼리는 각 도로에서 gid 360을 사용하여 충돌에 가장 가까운 지점을 반환해야하지만 ST_Intersects 함수는 첫 번째 결과 (모든 도로에서 가장 가까운 지점)에 대해 false를 반환합니다. 내가 뭔가 잘못하고 있습니까? 충돌을 가장 가까운 도로에 연결하는 다른 방법이 있습니까?