Як додати зміщення до Lat / lon, щоб отримати нову точку за допомогою PostGIS


9

Використовуючи PostGIS, я маю точку lat / lon і хочу додати зміщення схід / захід та північ / південь у метрах, щоб отримати нову точку. Це можливо?

Відповіді:


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

Вам доведеться спочатку перетворити lat / lon на метри. Для цього можна скористатися ST_Transform:

ST_Transform - Повертає нову геометрію з її координатами, перетвореними на SRID, на які посилається цілий параметр.

Джерело: http://postgis.net/docs/ST_Transform.html


Я маю проблеми з лат / лоном на метри. Будь-які пропозиції щодо цього?
Дейв Дженнінгс

Відповідну функцію я додав у відповідь. Якщо ви не знаєте, яку цільову SRID вибрати, вам доведеться скористатися географічним масштабом ваших даних.
underdark

Дякую. Мої інші дослідження врешті-решт сказали мені те саме. Я наївно подумав, що це може бути простіше і є один SRID, який я міг би використати, але, здається, вам потрібно вибрати його залежно від вашого місця розташування.
Дейв Дженнінгс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.