It is a common mis-assumption that you need to do a buffer calculation. To do this type of analysis, all you need is the distance_sphere() calculation:
select *,distance_sphere(hospital1geom,hospitals2geom) from hospitals2 where distance_sphere(hospital1geom,hospitals2geom)<25*1609 order by distance_sphere(hospital1geom,hospitals2geom) asc;
Just add a limit 1 to the end if all you want is the closest.
No buffer necessary at all.
David
On 4/2/07, Michael Frumin
<mfrumin@...> wrote:
Right, I should be more specific from the outset. I did do some
searching thru the PostGIS archives, and didn't find the answer I was
looking for; is there a PostGIS FAQ somewhere?
As for my problem, my inputs are two sets of geocoded hospitals, and I
just want to be able to identify for each hospital in the first set,
the hospitals in the second set within approximately 25 miles. I will
the map these sets, with a 25 mile buffer around the first set, using
Geoserver. So, distance and area are both somewhat important, heading
not at all. distance_sphere(oid), sounds good for the calculation, but
won't help with the buffering because it doesn't tell me the 'distance'
in lat/lng space that would equate to 25 miles (because of course this
varies over the globe). To achieve this I would need to reproject into
something that is in meters, and buffer around that.
How egregious would you expect the errors to be if I simply use the
projection for the UTM zone that represents, say, Central time?
thanks,
mike
_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users