J'ai une table linestring et une table de points en postgis.
Je connais la ligne la plus proche d'un point donné. Ce que je dois savoir, c'est de quel «côté» de cette ligne se trouve le point. Je suppose que je dois le faire en créant une ligne perpendiculaire d'un point donné à la ligne (point le plus proche sur la ligne) puis comparer les coordonnées, mais je ne sais pas exactement comment faire cela, et si c'est la bonne façon, puisque la ligne change de direction.
J'ai fait une photo pour illustrer ma tâche.
La ligne elle-même est noire, sa direction est indiquée par des flèches vertes. J'ai besoin d'ajouter une colonne "latérale" à la table de points, de sorte que les points rouges doivent avoir la valeur "droite" et les points bleus doivent avoir la valeur "gauche".
Quelqu'un peut-il donner un exemple de code SQL de calcul d'une valeur "latérale" d'un point?
la source
ST_Azimuth(h.vec)
- est un pseudocode.h.vec
eth.seg
sont des lignes, donc pour être précis, cela devrait être quelque chose commeST_Azimuth(ST_StartPoint(h.vec), ST_EndPoint(h.vec))