Eu gostaria de fazer um PONTO usando as colunas de longitude e latitude de uma tabela existente .
Aqui está um link para a documentação do ST_MakePoint .
Aqui está a minha mesa:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
Adicionando coluna Geometria:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
Aqui está a minha consulta:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
Nenhum erro retornado, embora os PONTOS sejam plotados incorretamente quando visualizados no QGIS.
Pois (-97.5959, 21.1922)
eu recebo(-109.4896, 0.0002)
Alguma sugestão?
Estou aberto a fazer isso de forma mais eficiente se houver uma maneira mais fácil.
Respostas:
Talvez eu não esteja entendendo, mas você parece estar inserindo as coordenadas de latitude da longitude (-97, 21) em graus, em um CRS baseado em UTM e que usa medidores. Se você estiver declarando isso como SRID 26918, os valores long / lat deverão estar nesse CRS. Se os valores Long / Lat estiverem em graus, você precisará criar a geometria como ST_SetSRID (MakePoint (...), 4326) e depois transformar a camada em 26913. Portanto, juntando tudo, se você precisar da camada em 26913, mas suas colunas de longitude / latitude estão em graus, com o CRS 4326, então
fonte