Name

ST_Project — Renvoie un point projeté à partir d'un point de départ en fonction d'une distance et d'un azimut.

Synopsis

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

geometry ST_Project(geometry g1, geometry g2, float distance);

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

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

Description

Renvoie un point projeté à partir d'un point le long d'une géodésique en utilisant une distance et un azimut donnés. C'est ce qu'on appelle le problème de la géodésique directe.

La version à deux points utilise la trajectoire entre le premier et le deuxième point pour définir implicitement l'azimut et utilise la distance comme précédemment.

La distance est indiquée en mètres. Les valeurs négatives sont prises en charge.

L'azimut (également appelé cap ou relèvement) est indiqué en radians. Il est mesuré dans le sens des aiguilles d'une montre à partir du vrai nord.

  • Le nord est l'azimut zéro (0 degré)

  • L'est est l'azimut π/2 (90 degrés)

  • Le sud est l'azimut π (180 degrés)

  • Ouest est l'azimut 3π/2 (270 degrés)

Les valeurs d'azimut négatives et les valeurs supérieures à 2π (360 degrés) sont prises en charge.

Disponibilité : 2.0.0

Amélioration : 2.4.0 Autorise les distances négatives et les azimuts non normalisés.

Amélioration : 3.4.0 Autorise les arguments géométriques et la forme en deux points omettant l'azimut.

Exemple : Point projeté à 100,000 mètres et relèvement de 45 degrés

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