Suite

Insertion de données spatiales dans une colonne géométrique PostGIS existante à partir d'un fichier de formes en fonction de l'ID


J'ai une table de base de données PostgreSQL existante "city_data" avec des données non spatiales au format suivant :

City_ID comme varchar, City_name comme varchar, pop comme int,…

J'ai activé l'extension PostGIS à cette base de données existante et ajouté une colonne de géométrie "the_geom" à la table "city_data" avec SRID et d'autres détails essentiels identiques à mon fichier de formes.

Maintenant, j'ai un fichier de formes avec la limite de la ville en tant que polygone et il a également city_id qui est exactement le même que la table PostgreSQL.

Je voudrais charger les données de polygone à partir du fichier de formes et insérer/mettre à jour dans les lignes correspondantes de la table PostGIS en fonction de city_id.

Est-il possible de le faire directement ou existe-t-il une solution de contournement pour effectuer cette tâche ?


Je propose de diviser cette tâche en trois étapes :

  1. Importez le fichier de formes dans une table temporaire.
  2. Mettez à jour le geom de la colonne.
  3. Supprimez la table temporaire.

Pour importer le fichier de formes dans une table temporaire (par exemple, vous l'appeleztempérature), vous pouvez utiliser un outil comme shp2pgsql. Il est inclus dans l'installation de PostGIS. Un tutoriel est ici disponible.

L'instruction suivante mettra à jour la colonne geom de votre table existantecity_dataavec le geom de la tabletempérature.

UPDATE city_data a SET a.geom = b.geom FROM temp b WHERE a.city_id = b.city_id;

A la fin supprimer le tableautempérature.

SUPPRIMER la TABLE temp;


Voir la vidéo: Ajouter des références spatiales et transformer des données non spatiale en données spatiales ArcGIS (Octobre 2021).