¿Crear geometría desde lat / lon en la tabla usando PostGIS?

14

Tengo una tabla con más de 800,000 registros que incluyen una columna larga y larga. La fuente de datos no creó geometrías, así que estaba buscando cómo hacer esto. Sé que hay ST_MakePoint (x, y, SRID) pero toda la documentación y otros hilos muestran cómo crear puntos únicos. ¿Cómo creo el tipo de geometría usando estas columnas?

dknuth
fuente
1
¿te refieres a crear líneas a partir de estos puntos? Debido a que los puntos son geometría al igual que las líneas y los polígonos ... Entonces, si está buscando crear líneas a partir de estos puntos, consulte esta reciente publicación de blog de Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from -points.html
DPSSpatial
No Me refería a convertirlos a tipos de geometría para usar en consultas espaciales. Parece que mi pregunta ha sido respondida, así que gracias!
dknuth

Respuestas:

14

Si aún no ha agregado una columna de geometría (suponiendo EPSG: 4326 aquí):

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

Luego UPDATE, pasando los nombres de sus campos x e y:

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

Esto actualizará toda la tabla, a menos que incluya una WHEREcláusula

Referencia a ST_SetSrid: https://postgis.net/docs/ST_SetSRID.html

toms
fuente
2
Creo que ST_SRID debería ser ST_SetSRID. Recibí un error al usar ST_SRID
Vipin Gupta