Créer une géométrie à partir de lat / lon dans un tableau à l'aide de PostGIS?

14

J'ai une table avec plus de 800 000 enregistrements, y compris une colonne lat et longue. La source de données n'a pas créé de géométries, je cherchais donc comment procéder. Je sais qu'il y a ST_MakePoint (x, y, SRID) mais toute la documentation et les autres threads montrent comment créer des points uniques. Comment créer le type de géométrie à l'aide de ces colonnes?

dknuth
la source
1
voulez-vous dire créer des lignes à partir de ces points? Parce que les points sont de la géométrie tout comme les lignes et les polygones ... Donc, si vous cherchez à créer des lignes à partir de ces points, consultez ce récent article de Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from -points.html
DPSSpatial
Nan. Je voulais les convertir en types de géométrie à utiliser dans les requêtes spatiales. Il semble que ma question ait reçu une réponse, alors merci!
dknuth

Réponses:

14

Si vous n'avez pas encore ajouté de colonne de géométrie (en supposant EPSG: 4326 ici):

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

Ensuite UPDATE, en passant les noms de vos champs x et y:

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

Cela mettra à jour la table entière, sauf si vous incluez une WHEREclause

Référence à ST_SetSrid: https://postgis.net/docs/ST_SetSRID.html

toms
la source
2
Je pense que ST_SRID devrait être ST_SetSRID. J'ai reçu une erreur lors de l'utilisation de ST_SRID
Vipin Gupta