ST_Project — Returns a POINT projected from a start point using a distance in meters and bearing (azimuth) in radians.


geography ST_Project(geography g1, float distance, float azimuth);


Returns a POINT projected along a geodesic from a start point using an azimuth (bearing) measured in radians and distance measured in meters. This is also called a direct geodesic problem.

The azimuth is sometimes called the heading or the bearing in navigation. It is measured relative to true north (azimuth zero). East is azimuth 90 (π/2), south is azimuth 180 (π), west is azimuth 270 (3π/2).

The distance is given in meters.

Availability: 2.0.0

Enhanced: 2.4.0 Allow negative distance and non-normalized azimuth.

Example: Using degrees - projected point 100,000 meters and bearing 45 degrees

SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, radians(45.0)));

 POINT(0.635231029125537 0.639472334729198)
(1 row)

See Also

ST_Azimuth, ST_Distance, PostgreSQL Math Functions