Je voudrais créer un POINT en utilisant les colonnes de longitude et de latitude d'une table existante .
Voici un lien vers la documentation de ST_MakePoint .
Voici ma table:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
Ajout d'une colonne de géométrie:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
Voici ma requête:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
Aucune erreur renvoyée bien que les POINTS soient mal tracés lorsqu'ils sont affichés dans QGIS.
Pour (-97.5959, 21.1922)
, je reçois(-109.4896, 0.0002)
Aucune suggestion?
Je suis disposé à le faire plus efficacement s'il existe un moyen plus simple.
Réponses:
Peut-être que je ne comprends pas, mais vous semblez entrer des coordonnées de latitude et de longitude (-97, 21) en degrés, dans un CRS basé sur UTM et utilisant des mètres. Si vous le déclarez comme SRID 26918, les valeurs long / lat doivent être dans ce CRS. Si les valeurs Long / Lat sont en degrés, vous devrez créer la géométrie en tant que ST_SetSRID (MakePoint (...), 4326) puis transformer le calque en 26913. Donc, en mettant tout cela ensemble, si vous avez besoin d'avoir le calque en 26913, mais vos colonnes de longitude / latitude sont en degrés, avec CRS 4326, puis
la source