En mi base de datos PostGIS (PostGIS 1.5 en Postgres 8.4.1), tengo dos tablas: carreteras (compuestas de cadenas de líneas) y bloqueos (compuestos de puntos). He estado tratando de correlacionar cada choque con una carretera, pero tengo problemas para que funcione lo siguiente:
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;
Esta consulta debería devolver el punto más cercano al accidente con gid 360 en cada camino, pero la función ST_Intersects devuelve falso para el primer resultado (el verdadero punto más cercano en todos los caminos). ¿Estoy haciendo algo mal? ¿Hay alguna otra manera de vincular el accidente a la carretera más cercana?