[postgis-users] Using PostGIS for latitude & longitude
pcreso at pcreso.com
pcreso at pcreso.com
Wed Dec 19 09:08:25 PST 2012
Hi Neville,
Obviously you start by installing Postgis in your database.
Follow the instructions for your Postgis version & operating system.
To create your geometry:
1. add a geometry column to your table. This will be a point type, with a SRID of 4326 (ie: lat long degrees - see http://www.spatialreference.org/ref/epsg/4326/
See here for the command to use:
http://postgis.refractions.net/docs/AddGeometryColumn.html
2. Populate this column (called geom, for example), from your lat, lon columns with:
update table set geom=ST_SetSRID(ST_MakePoint(lon,lat),4326);
as described at http://www.postgis.org/docs/ST_MakePoint.html
You then need to make your query to retrieve the points with 7 miles of a specified location. This can get complicated depending on how accurate you want to be. The distance of 1 degree for your latitudes is 60 nautical miles. For longitude, it is 60 nm at the equator & decreases proportional to the cosine of the latitude for non-equatorial values. Postgis allows you to reproject your coordinates, or calculate against a sphere, or a selected spheroid (given the Earth is not spherical). I'm assuming here that a spherical calculation will work in your case, using 1/60th of a degree = 1 mile.
given a user location of $x,$y, you need to construct a point geometry & check the distance (measured on a sphere in units degrees) against each of your points, eg:
select * from table where ST_Distance_Sphere(ST_MakePoint($x,$y),geom) <= 7/60;
see: http://postgis.refractions.net/documentation/manual-1.4/ST_Distance_Sphere.html
HTH,
Brent Wood
--- On Wed, 12/19/12, nevillekb <nevillekb at gmail.com>
wrote:
From: nevillekb <nevillekb at gmail.com>
Subject: [postgis-users] Using PostGIS for latitude & longitude
To: postgis-users at postgis.refractions.net
Date: Wednesday, December 19, 2012, 10:51 PM
I have a table in postgresql 9.2 that stores the latitude and longitude of
locations as integer values.
I intend to do something like when a user searches for a location, he also
gets information on other locations that are within a 7 mile radius of that
searched location.
How do i use postGIS for this since i am new to it. Any idea.?
--
View this message in context: http://postgis.17.n6.nabble.com/Using-PostGIS-for-latitude-longitude-tp5002097.html
Sent from the PostGIS - User mailing list archive at Nabble.com.
_______________________________________________
postgis-users mailing list
postgis-users at lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20121219/c00f9ea6/attachment.html>
More information about the postgis-users
mailing list