Joe Roberts wrote:
Hi,

I am very new to PostGIS, and I'm stuck with what I hope is an easy
problem to solve.

I have a table which contains a list of points, originating from a GPS
device's lat/long output. I want to get the distance travelled. I have
the following query, but the result (distance) looks far to low:

SELECT ST_Length(St_MakeLine(point))/1000 as distance
FROM (
      SELECT point FROM points
      ORDER BY timestamp
) as p

I know the route was over 5 miles (probably about about 8.4 km), but
the query returns 0.000106496.

Can anyone see what I am doing wrong? Is it my query, or could it be
my data?

Many thanks

Joe

So assuming your GOS is return LAT, LON in WGS84

ST_Length is returning the length in degrees (IE: the Cartesian distance in the units of the geometry) and that return 0.106496 degrees. If you want miles you can multiple that by the number of miles/degree and assuming a great circle like path there are approximate 69.172 miles per degree along the Equator so you distance is 7.366541312 miles which seems to fit with your statements above.

http://www.google.com/search?hl=en&q=miles+per+degree&btnG=Google+Search

-Steve
_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to