Name

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

Synopsis

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

Description

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

Distance, azimuth and projection are all aspects of the same operation, describing (or in the case of projection, constructing) the relationship between two points on the world.

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 (pi/2), south is azimuth 180 (pi), west is azimuth 270 (pi*1.5).

The distance is given in meters.

Availability: 2.0.0

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)));
			  st_astext
------------------------------------------
 POINT(0.63523102912532 0.63947233472882)
(1 row)
	

Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 degrees)

SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));
			  st_astext
------------------------------------------
 POINT(0.63523102912532 0.63947233472882)
(1 row)
	

See Also

ST_Azimuth, ST_Distance, PostgreSQL Math Functions