Me gustaría hacer un PUNTO utilizando las columnas de longitud y latitud de una tabla existente .
Aquí hay un enlace a la documentación de ST_MakePoint .
Aquí está mi mesa:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
Agregar columna de geometría:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
Aquí está mi consulta:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
No se devuelve ningún error, aunque los PUNTOS se trazan incorrectamente cuando se visualizan en QGIS.
Para (-97.5959, 21.1922)
, yo recibo(-109.4896, 0.0002)
¿Alguna sugerencia?
Estoy abierto a hacer esto de manera más eficiente si hay una manera más fácil.
Respuestas:
Tal vez no lo entiendo, pero parece que está ingresando las coordenadas de Longitud Latitud (-97, 21) en grados, en un CRS que está basado en UTM y usa medidores. Si declara esto como SRID 26918, entonces los valores largos / lat deben estar en ese CRS. Si los valores Long / Lat están en grados, deberá crear la geometría como ST_SetSRID (MakePoint (...), 4326) y luego transformar la capa a 26913. Por lo tanto, poner todo junto, si necesita tener la capa en 26913, pero sus columnas de longitud / latitud están en grados, con CRS 4326, luego
fuente