Pages: 1
- Sujet précédent - PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques - Sujet suivant
#1 Fri 11 October 2013 17:06
- Shetty
- Juste Inscrit !
- Date d'inscription: 5 Sep 2013
- Messages: 9
PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonjour,
J'utilise une base de données cartographique sur PostgreSQL 9.2 avec PostGis (PGadminIII) et Qgis.
Mon problème est le suivant : toutes mes requêtes fonctionnent tant qu'elles ne concernent qu'une seule table géographique (avec un champ gid et un geom) et je peux ouvrir les vues correspondantes sous QGis.
Mais orsque je veux faire une vue croisant des données carto existant sur plusieurs tables différentes (par exemple les parcelles cadastrales et des points de relevés), avec les champs gid et geom renommés afin qu'ils n'existent pas en double, Qgis la considère comme 2 vues distinctes et je ne peux pas les ouvrir.
Y'a t'il quelque chose à faire pour pouvoir croiser des tables géographiques? Ou bien est-ce impossible?
Merci d'avance
Hors ligne
#2 Wed 16 October 2013 15:22
- Shetty
- Juste Inscrit !
- Date d'inscription: 5 Sep 2013
- Messages: 9
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Je m'aperçois aujourd'hui que ce problème vient peut être de ma requête et/ou de mes tables : aujourd'hui en tentant une requête sur plusieurs tables dont l'une est spatiale, ma requête fonctionne dans Query, mais impossible de l'utiliser pour créer une vue.
Le problème est que ma requête commence par
SELECT int4(row_number() OVER ()) AS id,
Et j'ai un message de la forme ERREUR : ne peut pas modifier le nom de la colonne "Cle" en "id"
Ce champ est une clé primaire, j'ai réessayé en enlevant la contrainte mais ça ne change rien : cette requête fonctionne sur d'autres tables mais pas celle-là...
une idée?
Merci d'avance de votre aide!
Hors ligne
#3 Wed 16 October 2013 16:35
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonjour
Afin de bien comprendre. Cette requête vous la faite sur une vue déjà existante ?
Pour ma part j'ai ce message d'erreur lorsque je tente de modifier un nom de champ (voir en supprimer) dans une requête de création de vue dans la fenêtre de requête sql.
Si c'est le cas essayé de supprimer votre vue et de relancer votre requête CREATE OR REPLACE VIEW....
Sinon pouvez-vous nous en dire plus sur cette requête : quelles tables sont concernées ? la syntaxe de la requête...
Cordialement.
Hors ligne
#4 Wed 16 October 2013 17:06
- Shetty
- Juste Inscrit !
- Date d'inscription: 5 Sep 2013
- Messages: 9
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonsoir,
merci bien, effectivement en recréant une nouvelle vue avec la même requête ça fonctionne!
Me reste le souci des vues comportant plusieurs champs geom et gid que je n'arrive pas à importer sur QGis, bien que les vues fonctionnent, mais peut être qu'il ne peut tout simplement pas les gérer?
Cordialement
Hors ligne
#5 Wed 16 October 2013 18:53
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonsoir,
Oui effectivement, une table ou vue avec plusieurs colonnes géographiques est difficilement affichable par les outils SIG.
En terme de modèle, que représentent ces deux colonnes d'objets géographiques ?
Nicolas
Hors ligne
#6 Thu 17 October 2013 07:53
- Shetty
- Juste Inscrit !
- Date d'inscription: 5 Sep 2013
- Messages: 9
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonjour,
je ne suis pas sûre de comprendre votre question, mais ces colonnes d'objets géographiques correspondent pour l'une à des multipolygones (parcelles) et pour l'autre à des points (relevés) sachant que j'ai importé ces données depuis des shapefile, et que les shapefile d'origine ont le même SRC.
Sur Qgis ces couches se superposent parfaitement et je peux faire une intersection ; c'est le seul moyen que j'aie trouvé pour le moment pour recouper mes données.
Si je n'ai pas répondu à votre question n'hésitez pas à préciser (je débute en BDD et avec Qgis...)
Merci
Hors ligne
#7 Thu 17 October 2013 11:33
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonjour,
En général, une "couche" géographique (shapefile, table dans une base de données, etc.) représente un objet de la réalité. Elle modélise cet objet.
Par exemple votre shapefile des parcelles contient des attributs dont un, la géometrie, représente la position et la forme de la parcelle sur la terre.
En créant une couche avec deux colonnes géographiques, quel type d'objet voulez-vous représenter ?
En fait, que souhaitez-vous obtenir en croisant les deux couches, quelles sont les informations qui vous sont importantes lors de ce croisement ?
Nicolas
Hors ligne
#8 Thu 17 October 2013 14:33
- Shetty
- Juste Inscrit !
- Date d'inscription: 5 Sep 2013
- Messages: 9
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
En fait ce qui m’intéresserait serait que la vue créé les deux couches, polygones et points, afin qu'on puisse les superposer une fois dans Qgis.
Là le problème est que la vue, une fois importée dans QGis, apparait bien sur 2 couches différentes, mais pas moyen de charger l'une ou l'autre : QGis plante systématiquement.
Si ce n'est pas possible, je vais conserver le système D que j'utilise, c'est à dire faire à chaque fois 2 requêtes donnant 2 vues que je superpose par la suite.
Merci beaucoup pour votre aide!
Bien cordialement
Hors ligne
#9 Thu 17 October 2013 15:10
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Ce n'est pas du système D, mais la bonne facon de faire :
Créez autant de vues que de couches qui sont utiles a votre métier (une vue = une couche = une colonne geo), puis ajoutez ces couches dans QGis pour faire une carte.
Il y a peu de cas où le stockage de deux colonnes géographique dans une meme table ou vue est pertinent. Ca peut etre utile pour des questions de performance d'affichage ou de traitement, mais rarement pour modéliser une réalité géographique.
Nicolas
Hors ligne
#10 Thu 17 October 2013 15:32
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques
Bonjour,
QGIS ne peut pas afficher dans une table (pour un champ geom) des objets qui soient polygones, lignes ou points (et je dirais, c'est tant mieux mais ce n'est que mon avis:)). C'est forcément un des trois (+ dérivés). Ainsi, si toutes vos géométries sont stockées dans un seul champ, QGIS ne pourra vous les afficher toutes. De même, si elles sont dans des colonnes géométriques différentes, il faudra a priori, afficher deux tables différentes, chacune avec son champ geom.
Si vous voulez donc superposer les parcelles et les points de relevés, il vous faudra préférentiellement afficher deux tables. Maintenant, vous n'avez pas forcément besoin de créer des vues réelles dans votre base postgis avant de les utiliser dans QGIS (oin peut à ce rythme se retrouver avec beaucoup de vues dans la base, selon ce que l'on fait); Dans QGIS vous pouvez appeler les tables mères et :
- soit dans les propriétés de la couche, onglet général faire une requête sur les champs de la couche pour ne conserver que les entités qui vous intéressent
- soit au moment de l'insertion, si vous utiliser "Ajouter une couche Postgis", faire une requête sql (je crois que ça se limite aussi aux champs)
- soit, si vous utilisez DBManager (ou autre?), faire une requête SQL préalable avec utilisation des fonctions spatiales de Postgis.
Hors ligne
Pages: 1
- Sujet précédent - PostgreSQL/PostGis/QGIS : requête sur plusieurs tables géographiques - Sujet suivant