[postgis-users] Problems with st_distance

Charles Galpin cgalpin at lhsw.com
Tue Mar 13 04:37:20 PDT 2012


The distance should be in the projection units, which for 4326 is decimal degrees, and if you want meters you'll need to convert the results to meters.

But first, I suspect your data is not in 4326 then if you get 1179.  Make sure you are using the SRID when inserting them

> update address set geog=ST_GeographyFromText('POINT('||lon||' '||lat||')',4326) where id=?;

Also see
http://postgis.refractions.net/docs/ST_Distance.html
hth
charles

On Mar 13, 2012, at 2:58 AM, Stuart Guthrie wrote:

> Could it be returning a distance in decimal miles? I'm out by around 1.6 - 1.6km = 1mile?
> 
> On Tue, Mar 13, 2012 at 5:43 PM, Stuart Guthrie <stuartguthrie at gmail.com> wrote:
> OK, I'm a newbie to postgis but an old-timer with open source in general.
> 
> Sorry to bother everyone but this problem is driving me a little nuts.
> 
> I've bought the 'postgis in action' book and now I think I still know nothing.
> 
> I'm trying to store long lats and do queries on them to establish distance and use that for reporting.
> 
> I'm using this to update the table 'address' 
> 
> update address set geog=ST_GeographyFromText('POINT('||lon||' '||lat||')') where id=?;
> 
> the address table field 'geog' has this definition:
> 
>  geog            geography(Point,4326)  
> 
> When I compare two addresses that I know are around 1800m apart I get this:
> 
> select a.addressline2, a.suburb, ST_Y(a.geog::geometry), ST_X(a.geog::geometry),  b.addressline2,b.suburb,ST_Y(b.geog::geometry), ST_X(b.geog::geometry), ST_distance(a.geog,b.geog ) from address a join address b on b.id=41491 where a.id=1238 ;
> 
> addressline2  | suburb |    st_y     |    st_x     |  addressline2  |   suburb    |    st_y     |    st_x     |   st_distance    
> ---------------+--------+-------------+-------------+----------------+-------------+-------------+-------------+------------------
>  140 Sussex St | Sydney | -33.8692429 | 151.2036312 | 1 Riley Street | Surry Hills | -33.8726426 | 151.2157115 | 1179.61881540556
> 
> Postgis says they are 1179.61m apart.
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20120313/0dcb4237/attachment.html>


More information about the postgis-users mailing list