Ajout d'une fonctionnalité SIG à une entrée de base de données existante avec QGIS

9

J'ai construit une base de données avec postgreSQL avec des tables, qui incluent des colonnes de géométrie. Lorsque j'ajoute des données à mes colonnes non géométriques, je peux les voir dans QGIS lorsque je me connecte à ma base de données à l'aide de postgis. Maintenant, je veux ajouter des polygones aux entrées existantes avec l'outil d'édition dans QGIS. Cela signifie, remplir les colonnes de géométrie dans QGIS.

Comment puis-je faire ceci? J'ai seulement entendu parler de l'ajout de fichiers de formes entiers à la base de données, mais pas de l'ajout de fonctionnalités uniques à une seule colonne.

Un exemple ... J'ai le tableau suivant (municipalité):

id smallint NOT NULL,
name varchar(50) NOT NULL,
mun_geom geometry(Polygon, 31468)

Je peux remplir les colonnes id et nom dans postgresql lorsque je suis connecté à ma base de données (comme (1, 'municipality1')). Après avoir ajouté la municipalité en tant que couche de postgis, je veux compléter l'entrée en ajoutant une entité polygonale.

Stefan
la source
@mapBaker désolé mais je ne peux pas ajouter de commentaire à votre message car je n'ai pas 50 points de réputation. Quoi qu'il en soit, votre solution ne fonctionne pas pour moi. Quand j'essaye d' ajouter la pièce qgis montre l'erreur La nouvelle pièce n'est pas une géométrie valide Merci
franco_b

Réponses:

1

J'ai essayé de faire quelque chose de similaire à ce que vous faites dans Spatialite, j'avais une table et je voulais ajouter et remplir une colonne de géométrie pour cette table. Je n'ai pas pu le faire directement, mais ce avec quoi j'ai fini a fonctionné. J'ai ajouté une deuxième table avec seulement deux champs, une clé pour correspondre à ma table d'origine et ma colonne de géométrie. Je l'ai rempli puis créé une vue qui combinait les deux tables. Vous pouvez faire de même, ou vous pouvez remplir la deuxième table, puis utiliser une requête UPDATE pour remplir la colonne de géométrie de votre première table si vous voulez que tout dans une seule table.

HeyOverThere
la source
9

J'ai compris ça! (également demandé ici )

Un enregistrement dans une table spatiale (Shapefile, PostGIS, Spatialite) qui n'a pas de géométrie peut avoir une géométrie ajoutée en ajoutant une «pièce» à l'entité à l'aide de la barre d'outils de numérisation avancée . Voici le workflow:

  1. Apportez une table contenant la fonction manquant de géométrie dans QGIS
  2. Sélectionnez le calque dans le panneau des calques et démarrez une session d'édition sur ce calque
  3. Cliquez avec le bouton droit sur la zone de barre d'outils de QGIS (où il n'y a pas de bouton) et ouvrez la barre d'outils de numérisation avancée
  4. Ouvrez la table attributaire de la couche et sélectionnez l'entité qui manque de géométrie
  5. Dans la barre d'outils de numérisation avancée, cliquez sur l' outil Ajouter une pièce
  6. Vous pouvez maintenant ajouter la géométrie de l'entité (point, ligne ou polygone) comme vous ajouteriez n'importe quelle nouvelle entité à une table
  7. Enregistrez vos modifications et arrêtez les modifications. La fonction a maintenant une géométrie!
DPSSpatial
la source