3

I've seen the questions and answers about ST_Azimuth, but didn't find a specific example for this case:

I need to calculate the azimuth from point id 1 to id 2, id 2 to id 3, id 3 to id 4, ...

Table 'points' with id and geom

How can I define the query to calculate the azimuth between id and id+1 (next point)?

Or is there a QGIS field calculator solution?

Vince
  • 20,017
  • 15
  • 45
  • 64
aicun
  • 63
  • 6

1 Answers1

3

Use the LEAD window function to get the geometry from the next row in specific order as argument to ST_Azimuth:

SELECT id,
       ST_Azimuth(
          geom,
          LEAD(geom) OVER(ORDER BY id)
       ) AS azm,
       geom
FROM   points
;

The last row will have NULL as azm.

geozelot
  • 30,050
  • 4
  • 32
  • 56