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?


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


2
Eu acho que ST_SRID deve ser ST_SetSRID. Ocorreu um erro ao usar o ST_SRID
Vipin Gupta
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.