Criando geometria a partir de lat / lon na tabela usando o PostGIS?

14

Eu tenho uma tabela com mais de 800.000 registros, incluindo uma coluna lat e long. A fonte de dados não criou geometrias, então eu estava olhando em volta como fazer isso. Eu sei que há ST_MakePoint (x, y, SRID), mas toda a documentação e outros threads mostram como criar pontos únicos. Como crio o tipo de geometria usando essas colunas?

dknuth
fonte
1
você quer dizer criar linhas a partir desses pontos? Como os pontos são geometria, assim como as linhas e os polígonos ... Então, se você estiver pensando em criar linhas a partir desses pontos, verifique esta recente postagem no blog de Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from -points.html
DPSSpatial
Não. Eu pretendia convertê-los em tipos de geometria para serem usados ​​em consultas espaciais. Parece que minha pergunta foi respondida, então obrigado!
dknuth

Respostas:

14

Se você ainda não adicionou uma coluna geométrica (assumindo EPSG: 4326 aqui):

SELECT AddGeometryColumn ('your_table','geom',4326,'POINT',2);

Em seguida UPDATE, passando os nomes dos seus campos x e y:

UPDATE yourtable SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

Isso atualizará a tabela inteira, a menos que você inclua uma WHEREcláusula

Referência para ST_SetSrid: https://postgis.net/docs/ST_SetSRID.html

toms
fonte
2
Eu acho que ST_SRID deve ser ST_SetSRID. Ocorreu um erro ao usar o ST_SRID
Vipin Gupta