Como adiciono um deslocamento a um lat / lon para obter um novo ponto usando o PostGIS


9

Usando o PostGIS, tenho um ponto lat / lon e quero adicionar um deslocamento leste / oeste e norte / sul em metros para obter um novo ponto. Isso é possível?

Respostas:


8

Você pode usar ST_Translate:

A função ST_Translate pega qualquer geometria (cadeia de linhas, multilinhas etc.) retorna uma nova geometria que é a geometria original movida por um vetor definido por X, Y, Z. Observe que as unidades de medida estão sempre nas unidades do sistema de referência espacial do argumento da geometria. Existem duas formas de ST_Translate. ST_Translate (geometria, X, Y, Z) e ST_Translate (geometria, X, Y).

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

Você precisará transformar lat / lon em metros primeiro. Você pode usar ST_Transform para conseguir isso:

ST_Transform - Retorna uma nova geometria com suas coordenadas transformadas no SRID referenciado pelo parâmetro inteiro.

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


É a parte lat / lon em metros com a qual estou tendo problemas. Alguma sugestão sobre isso?
Dave Jennings

Eu adicionei a função correspondente à resposta. Se você não souber qual SRID de destino escolher, precisará informar a extensão geográfica dos seus dados.
underdark

Obrigado. Minha outra pesquisa acabou me dizendo a mesma coisa. Ingenuamente, pensei que poderia ser mais simples e haveria um único SRID que eu poderia usar, mas parece que você precisa escolher um com base na sua localização.
Dave Jennings
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.