[postgis-users] Problems with st_distance

Stuart Guthrie stuartguthrie at gmail.com
Mon Mar 12 23:43:25 PDT 2012

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

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.

When I use google maps/yahoo maps/bing maps scale with a good-old fashioned
ruler, I get closer to 1800-2000m.

This site says 2230m:


Is there somewhere I'm missing a magic incantation? I can't find it. Tried
geometry instead of geography no solution for me there.

I'm using Postgis 1.5.3-1 ubuntu amd64 11.10

Thanks if you can help.

Best regards

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

More information about the postgis-users mailing list