У меня есть таблица строк и таблица точек в postgis.
Я знаю самую близкую линию к любой данной точке. Что мне нужно знать, так это то, на какой стороне этой линии находится точка. Я думаю, мне нужно сделать это путем создания перпендикулярной линии от заданной точки к линии (ближайшей точки на линии), а затем сравнить координаты, но я не знаю точно, как это сделать, и если это правильный путь, так как линия меняет свое направление.
Я сделал картинку, чтобы проиллюстрировать мою задачу.
Сама линия черная, ее направление показано зелеными стрелками. Мне нужно добавить столбец "side" в таблицу точек, чтобы красные точки имели значение "right", а синие точки - "left".
Может кто-нибудь привести пример кода SQL для вычисления «побочного» значения точки?
источник
ST_Azimuth(h.vec)
- это псевдокод.h.vec
иh.seg
это строки, так что если быть точным, то это должно быть что-то вродеST_Azimuth(ST_StartPoint(h.vec), ST_EndPoint(h.vec))