[GIS] Calculate distances between series of points in postgis

distancepostgis

I have a postgres/postgis table containing a series of sequential points. I want to add a new column to the table which contains the distance between each point and the first one, and so forth until all the points are processed (the first point should have a distance of 0). Can this be done with a query or do I need to use Python or equivalent to create a loop?
Many thanks

Best Answer

Hallo

If assume that you have an id field called gid and that the first point has gid 1 then you can do something like:

ALTER table my_table ADD COLUMN dist DOUBLE PRECISION;

UPDATE my_table SET dist=ST_Distance(my_table.geom, b.geom) 
FROM (SELECT geom FROM my_table WHERE gid = 1) b;

That will add a column called dist and fill that column with the distance to the point with gid=1

HTH Nicklas