[postgis-users] Path to closest neighbor
Stephen Woodbridge
woodbri at swoodbridge.com
Sun Nov 29 08:50:10 PST 2009
Well, you might want to look into this query then and see if you can
find the issue. If you have a reasonable number of hospitals then just
list them all like:
select name,
astext(the_geom),
distance_sphere(setsrid(makepoint(x,y), 4326), the_geom) as dist
from hospitals
order by
distance_sphere(setsrid(makepoint(x,y), 4326), the_geom) asc;
Distance should be in meters. You might want to validate the the
hospitals are entered at the correct positions. Computing the distance
is pretty basic stuff, it is probably a problem with the data.
-Steve
Nalin C wrote:
> Ya, it's near the southern tip of India, a point in Sri Lanka. x, y has been
> given correct. I used 4326 as the SRID.
>
>
>
> Stephen Woodbridge wrote:
>> You need to read up on pgRouting and probably join the pgRouting list
>>
>> http://pgrouting.postlbs.org/
>> http://lists.postlbs.org/mailman/listinfo/pgrouting-users
>>
>> -Steve
>>
>> Nalin C wrote:
>>> Also, can you please suggest me the functions that can be used for points
>>> 2
>>> and 3 ? I'm totally a newbie to postgis.
>>>
>>> In point 2, it would be great if the path can start from in front of the
>>> hospital, instead a vertex in roads table.
>>>
>>>
>>>
>>> Nalin C wrote:
>>>> Hi Steve,
>>>>
>>>> Thank you for the quick reply.
>>>>
>>>> I observed that the results returned by :
>>>>
>>>> select name, the_geom from hospitals order by
>>>> distance_sphere(setsrid(makepoint(79.877778, 6.914722), 4326), the_geom)
>>>> asc limit 3;
>>>>
>>>> are not the closest hospitals to the given accident point. I'm not sure
>>>> what has gone wrong.
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Nalin
>>>>
>>>>
>>>>
>>>> Stephen Woodbridge wrote:
>>>>> Nalin C wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I have two tables for roads and hospitals. I'm looking for suitable
>>>>>> pgrouting function(s) for following scenario.
>>>>>>
>>>>>> Given the accident point (in point geometry), finding the least
>>>>>> distant
>>>>>> hospital and draw the path.
>>>>>>
>>>>>> Following functionality is needed.
>>>>>>
>>>>>> 1. One end of the drawn path needs to start from in front of the
>>>>>> closest
>>>>>> hospital (which is in hospitals table).
>>>>>> 2. Path needs to stop from the accident point on road.
>>>>>>
>>>>>> I'm new to pgrouting and appreciate your help.
>>>>> You have a few discrete tasks. Assuming you have the location of the
>>>>> accident:
>>>>>
>>>>> 1) Select say the three closest hospitals based on straight line
>>>>> distance. (x,y) is the location of the accident.
>>>>>
>>>>> select name, the_geom from hospitals where order by
>>>>> distance_sphere(setsrid(makepoint(x,y), 4326), the_geom) asc limit 3;
>>>>>
>>>>> 2) then use pgRouting to use the Hospital location as start and the
>>>>> accident as end and comput the routes
>>>>>
>>>>> 3) compare the routed distances and select the shortest.
>>>>>
>>>>> -Steve W
>>>>> _______________________________________________
>>>>> postgis-users mailing list
>>>>> postgis-users at postgis.refractions.net
>>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>>
>>>>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>
More information about the postgis-users
mailing list