#1 Wed 21 January 2009 06:35
- tta
- Participant occasionnel
- Lieu: Montréal
- Date d'inscription: 4 Oct 2005
- Messages: 39
QGIS : Jointure spatiale et requête entre deux tables
Bonjour,
J'aimerai savoir s'il est possible de faire une jointure spatiale de deux tables (couches) ou faire une requête sur deux tables en utilisant QGIS ??? Je cherche désespérément à accomplir ces deux actions sous QGIS version 1.0 Kore sous Ubuntu, mais en vain. J'ai essayé de regarder une solution du côté du trio Qgis, PostgreSQL/PostGIS, je n'ai malheureusement pas trouvé d'exemples.
Quelqu'un pourrait-il m'aiguiller vers des pistes??? Existent-ils des solutions par rapport à cette problématique???
Merci d'avance
Cordialement.
Hors ligne
#2 Wed 21 January 2009 09:25
Re: QGIS : Jointure spatiale et requête entre deux tables
Bonjour,
As tu testé le plugin "tools" (ancien fTools). Celui-ci permet de faire beaucoup de chose dont des jointures spatiales
http://georezo.net/wiki/main:geolibre:q … ins:ftools
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 21 January 2009 10:10
- jmz
- Participant actif
- Lieu: Anthon
- Date d'inscription: 5 Sep 2005
- Messages: 142
Re: QGIS : Jointure spatiale et requête entre deux tables
Bonjour tout le monde,
Yves, pour compléter, j'ai testé cette fonction du plugin FTools avec succès.
-> On peut même faire une jointure entre 1 layer postGIS et 1 layer Shape ou MapInfo
-> Le résultat est exporté dans un nouveau Shapefile
Autre solution, requêter PostGIS via SQL (console SQL standard) pour créer ta jointure (on peut faire un CREATE TABLE AS ... pour obtenir une table résultante), et ensuite afficher la table de manière classique dans Qgis.
Jmz.
Hors ligne
#4 Wed 21 January 2009 19:54
- tta
- Participant occasionnel
- Lieu: Montréal
- Date d'inscription: 4 Oct 2005
- Messages: 39
Re: QGIS : Jointure spatiale et requête entre deux tables
Bonjour à vous deux,
Merci pour vos deux réponses respectives, rapides de surcroît, je vous avoue que je suis soulagé de savoir que des solutions existent à mon problème, car j'étais un peu inquiet à l'idée de savoir qu'il n'existait pas de solution à mon problème, car j'ai proposé une solution alternative à une petite municipalité qui voulait implanter un mini SIG bureautique basé sur les solutions Open Source. En fait, comme le dit bien l'adage "il y a toujours une solution à tout problème..." J'ai alors proposé le tryptique QGIS PostgreSQL_PostGIS. Et lorsque la question m'était posée à savoir la possibilité de créer des requêtes et des jointures spatiales entre plusieurs tables, je ne trouvais pas la façon de le réaliser sous QGIS. Cependant, je ne doutais pas qu'il devrait avoir une solution du côté serveur entre PostgreSQL/PostGIS et le client QGIS, malheureusement je n'arrivais pas à le faire.
Ceci étant, JMZ pouvez-vous me fournir un exemble de syntaxe sql complète qui permet de créer une jointure entre deux tables à partir du requêteur PostGIS via la console SQL sous QGIS ??? J'ai consulté la doc de QGIS, mais je ne trouve pas d'exemple relié à la jointure spatiales entre deux tables en utilisant le requêteur PostGIS via la console SQL.
Yves, j'ai chargé le plugin Tools qui est maintenant accessible via le gestionnaire de plugin dans QGIS, par contre, il ne me restev qu'à le tester avec mes jeux de données et je vous en donnerai des nouvelles...
Merci encore à vous pour vos pistes.
Cordialement
Tahir
Hors ligne
#5 Thu 22 January 2009 09:50
Re: QGIS : Jointure spatiale et requête entre deux tables
Tahir
En fait, comme le dit bien l'adage "il y a toujours une solution à tout problème..."
Moi je préfère dire : "S'il n'y a pas de solution, c'est qu'il n'y a pas deproblème" Les Shadocks.
Bon travail sur QGIS,
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#6 Thu 22 January 2009 10:33
- jmz
- Participant actif
- Lieu: Anthon
- Date d'inscription: 5 Sep 2005
- Messages: 142
Re: QGIS : Jointure spatiale et requête entre deux tables
Bonjour,
Tout dépend de ce que vous voulez faire comme requête ? Le principal est de lancer la requête SQL à postGIS (soit directement dans une console de PostGIs ou via l'interface PgAdmin, ou un autre client, ou encore via un plugin Qgis qui permet d'attaquer PostGIs avec du SQL : PyPostGIS, ...).
exemple :
J'ai une table PostGIS des bâtiments, et une table des piétons qui se promènent. A un moment T je veux savoir quel est le nombre de piétons à l'intérieur de chacun des bâtiments. Je lance donc la requête qui me ramène le noms des bâtiments (champs data) sur une colonne et le nombre de piéton sur une seconde colonne :
Code:
select (select COUNT(*) FROM pietons)-count(p.data) AS nombre_de_personnes,b.data AS batiment from batiments b, pietons p where not contains(b.the_geom,p.geom) group by b.data order by b.data;
Je peux également créer une nouvelle table résultante en ajoutant CREATE TABLE AS avant mon ordre SQL :
Code:
create table resultat as select (select COUNT(*) FROM pietons)-count(p.data) AS nombre_de_personnes,b.data AS batiment from batiments b, pietons p where not contains(b.the_geom,p.geom) group by b.data order by b.data;
Ou encore, je peux mettre à jour un champs 'nb_pietons' de ma table des bâtiment :
Code:
update batiments bat set nb_pietons = ( select (select COUNT(*) FROM pietons)-count(p.data) from pietons p,batiments b where not contains(b.the_geom,p.geom) and bat.data = b.data group by b.data )
Si vous voulez d'autres exemples adaptés à votre problématique, allez plutôt chercher dans la doc de PostGIS, ou encore les tutoriels PostGIS de Mr Techer disponibles sur le web - desquels j'ai tiré l'exemple ci-dessus.
Cordialement
Jmz
Hors ligne
#7 Thu 22 January 2009 17:36
- tta
- Participant occasionnel
- Lieu: Montréal
- Date d'inscription: 4 Oct 2005
- Messages: 39
Re: QGIS : Jointure spatiale et requête entre deux tables
Bonjour à vous,
Yves, j'ai testé la jointure des deux couches en shapefile en utilisant l'extension Tools et ça marche nickel... Merci
Je remercie également JMZ pour ses trois exemples de commandes que j'ai hâte de tester et merci `également pour les références reliés aux exemples de jointure spatiales entre deux couches.
Merci encore
Cordialement
Hors ligne