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?

Dave Jennings
fonte

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

underdark
fonte
É 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