Как добавить смещение к широте / долготе, чтобы получить новую точку, используя PostGIS

9

Используя PostGIS, у меня есть точка широты / долготы, и я хочу добавить смещение восток / запад и север / юг в метрах, чтобы получить новую точку. Это возможно?

Дэйв Дженнингс
источник

Ответы:

8

Вы можете использовать ST_Translate:

Функция ST_Translate принимает любую геометрию (линейная строка, многострочная и т. Д.), Возвращает новую геометрию, которая является исходной геометрией, перемещенной вектором, определенным X, Y, Z. Обратите внимание, что единицы измерения всегда находятся в единицах пространственной системы отсчета аргумента геометрии. Есть две формы этого ST_Translate. ST_Translate (геометрия, X, Y, Z) и ST_Translate (геометрия, X, Y).

Источник: http://www.bostongis.com/postgis_translate.snippet

Сначала вам придется преобразовать широту / долготу в метры. Вы можете использовать ST_Transform для достижения этой цели:

ST_Transform - возвращает новую геометрию с координатами, преобразованными в SRID, на который ссылается целочисленный параметр.

Источник: http://postgis.net/docs/ST_Transform.html

Подземье
источник
У меня проблемы с широтой / долготой в метрах. Есть предложения по этому поводу?
Дэйв Дженнингс
Я добавил соответствующую функцию в ответ. Если вы не знаете, какой целевой SRID выбрать, вам нужно будет указать географический экстент ваших данных.
Подземье
Спасибо. Мое другое исследование в конечном счете сказало мне то же самое. Я наивно думал, что это может быть проще, и есть один SRID, который я мог бы использовать, но кажется, что вы должны выбрать один в зависимости от вашего местоположения.
Дейв Дженнингс