Dalam database PostGIS saya (PostGIS 1.5 pada Postgres 8.4.1), saya memiliki dua tabel: jalan (terdiri dari linestrings) dan tabrakan (terdiri dari titik). Saya telah mencoba menghubungkan setiap tabrakan dengan jalan, tetapi saya mengalami masalah dalam menjalankan hal berikut:
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;
Queury ini harus mengembalikan titik terdekat ke crash dengan gid 360 di setiap jalan, tetapi fungsi ST_Intersects mengembalikan false untuk hasil pertama (titik terdekat sebenarnya di semua jalan). Apakah saya melakukan sesuatu yang salah? Apakah ada cara lain untuk menghubungkan kecelakaan itu ke jalan terdekat?