Thank you for your response.

Let me try to clarify what I am trying to, now that I have found some actual data.

I have a table with the following structure.

countries
___________________________________
country_name    |       character varying(40)
the_geom                |       geometry
___________________________________

This table contains all of the countries. What I need to do is determine the distance, in meters, between a point (collected by a GPS) and say the 5 closest countries' borders.

 countries.the_geom SRID = 4269

When I run the following query, I get back a result that seems to be correct to me, however the distances are in degrees.

select country_name, distance(the_geom, GeomFromText('Point(-79.68433 40.58954)', 4269) as distance
        from countries
        order by distance
        limit 5;

Result:
__________________________________
United States   |       0
Canada                  |       1.8533
Bahamas, The    |       13.7850
Bermuda         |       16.9754
Cuba                    |       17.4070

Is it reasonable to simply multiply the distance by 69 (the approximate distance in miles between degrees)? How accurate is this? I don't need to be all that precise, but I do need to at least be in the ballpark.

Is there some way to determine the closest point in the border of the country to the point collected by the GPS in order to use the distance_sphere() or distance_spheroid() functions for a more precise measurement?

Thank you very much for any help.


On Sep 10, 2008, at 9:20 AM, Randall, Eric wrote:

Hi Doug,

If your point is in a table points and your states are in a table states and your distances are in feet
then one way might be something like:


select states.stateabbrev, st_distance(states.geom,points.geom)/5280
from points, states
where points.point_id = your_PA_point_id
and stateabbrev in ('OH','MD',''WV','VA')
order by st_distance(states.geom,points.geom)


If your point is an xy location then similarly (using example point in Greene County)

select states.stateabbrev, st_distance(states.geom,makepoint (1263197,192349))/5280
from states
where stateabbrev in ('OH','MD',''WV','VA')
order by st_distance(states.geom,makepoint(1263197,192349))



If you are talking about the SW corner point on the PA Boundary then you'll need to get the point on PA Boundary nearest the SW point (always the first point I believe) on the exteriorring of the envelope of the PA Boundary which would be:


select st_line_interpolate_point(st_exteriorring(st_geometryn(geom, 1)),st_line_locate_point(st_exteriorring(st_geometryn(geom, 1)),st_pointn(st_exteriorring(st_envelope(geom)),1)))
from states where stateabbrev = 'PA'


and use that point in the query(s) above. There are other ways, probably better ways too.



-Eric





-----Original Message-----
From: [EMAIL PROTECTED] [mailto:postgis- [EMAIL PROTECTED] Behalf Of Doug Fischer
Sent: Tuesday, September 09, 2008 10:55 AM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] list of the closest borders

Sorry but I just noticed that I made an error in my post. What I meant to say was the SW corner of PA and in the table the distance to PA should be 0 because the Point is in PA.

Thanks,
Doug

On Sep 9, 2008, at 8:52 AM, Doug Fischer wrote:

I am new to GIS / PostGIS so please forgive me if this is a simple question.

Assuming that I have a database populated with all of the proper data, I need to do determine a list of the closest borders from a point including distances.

ex.
If I have a point located in the SE corner of PA, I would like to run a query that will return a list containing something like the following:


Border
Distance in miles
PA
A
OH
B
MD
C
WV
D
VA
E

Is there a function in PostGIS that can do this type of thing? Does anyone have an example?

Thank you very much.
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to