¿Cómo agrego un desplazamiento a un lat / lon para obtener un nuevo punto usando PostGIS

9

Usando PostGIS tengo un punto lat / lon y quiero agregar un desplazamiento este / oeste y norte / sur en metros para obtener un nuevo punto. ¿Es eso posible?

Dave Jennings
fuente

Respuestas:

8

Puedes usar ST_Translate:

La función ST_Translate toma cualquier geometría (cadena lineal, multilínea, etc.) devuelve una nueva geometría que es la geometría original movida por un vector definido por X, Y, Z. Tenga en cuenta que las unidades de medida siempre están en las unidades del sistema de referencia espacial del argumento de geometría. Hay dos formas de ello ST_Translate. ST_Translate (geometría, X, Y, Z) y ST_Translate (geometría, X, Y).

Fuente: http://www.bostongis.com/postgis_translate.snippet

Tendrás que transformar lat / lon a metros primero. Puede usar ST_Transform para lograr esto:

ST_Transform: devuelve una nueva geometría con sus coordenadas transformadas al SRID al que hace referencia el parámetro entero.

Fuente: http://postgis.net/docs/ST_Transform.html

bajo oscuro
fuente
Es la parte de lat / lon a metros con la que estoy teniendo problemas. ¿Alguna sugerencia sobre eso?
Dave Jennings
Agregué la función correspondiente a la respuesta. Si no sabe qué SRID objetivo elegir, deberá indicar el uso de la extensión geográfica de sus datos.
oscuro
Gracias. Mi otra investigación finalmente me dijo lo mismo. Ingenuamente pensé que podría ser más simple y que podría usar un solo SRID, pero parece que tienes que elegir uno según tu ubicación.
Dave Jennings