У меня есть таблица GPS-координат PostGIS для каждых пяти секунд:
2011-01-01 00:00:05, POINT(x1,y1)
2011-01-01 00:00:10, POINT(x2,y2)
2011-01-01 00:00:15, POINT(x3,y3)
...
Я ищу запрос, который будет возвращать значения (отметка времени и точки) каждую секунду. Можно предположить, что точки соединены прямой линией.
Я специально ищу способ сделать это внутри базы данных, а не писать какой-то внешний скрипт.
postgis
sql
interpolation
Подземье
источник
источник
Ответы:
алло
Если ваша исходная таблица называется gps_p, ваше поле отметки времени называется ts, а точки - th_geom:
Он строит линии между точками и использует st_segmentize, чтобы разделить линию на 5 сегментов.
Если между исходными точками нет точно 5 секунд, это не сработает. Затем вы можете просто добавить поле id с последовательностью и использовать его для самостоятельного присоединения к таблице с id1 + 1 = id2.
НТН
/ Никлас
источник
Вот черновик кода для pl / python, это просто основная идея перевода точек на заданное расстояние и азимут.
Для запуска функций postgis в pl / python единственное решение, которое я нашел, это использовать plpy.prepare и plpy.execute (очень скучно).
источник
Если я не ошибаюсь ...
Вам нужно будет определить соединительную линию, а затем разделить ее.
источник