¿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?

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.