#1 Thu 17 January 2019 10:06
- meumeu
- Juste Inscrit !
- Date d'inscription: 6 May 2008
- Messages: 6
QGIS: Requête SQL, enfin je pense que c'est ça ?
Bonjour,
J'utilise depuis peu Qgis et j'ai réussi pour l'instant à me débrouiller en autoformation pour ce que j'avais à faire mais là je cale...
Mon problème est le suivant, j'ai une couche des IRIS et une couche des bâtiments se trouvant dans ces IRIS, je souhaiterai pour chaque IRIS connaitre la somme de surfaces bâties (cadastre) s’y trouvant. Je pense qu'une requête SQL permet ça, l'idée serait de créer une colonne dans la table des IRIS qui indiquerait pour chaque ilots la somme des surfaces bâties qui y sont présentes. J'ai créé une base de données SpatiaLite dans laquelle j'ai mis mes 2 couches pour pouvoir réaliser une requête sauf que je ne sais pas comment procéder pour construire la requête correspondant à ce que je souhaite faire...
Par avance je vous remercie de votre aide, en espérant que me demande soit claire et que le solution ne soit pas trop compliquée à mettre en oeuvre.
Hors ligne
#2 Thu 17 January 2019 10:25
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Requête SQL, enfin je pense que c'est ça ?
Bonjour,
Dans Vecteur, Outils de gestion des données, vous avez "joindre les attributs par localisation". Vous pourrez intégrer à votre couche IRIS, cad pour chaque ilôt, des statistiques concernant le bâti.
Hors ligne
#3 Thu 17 January 2019 11:28
- meumeu
- Juste Inscrit !
- Date d'inscription: 6 May 2008
- Messages: 6
Re: QGIS: Requête SQL, enfin je pense que c'est ça ?
Merci pour la réponse!
J'ai réussi mais pas comme je le souhaitait initialement, en faisant une jointure à partir de ma couche IRIS je n'obtenais aucun résultats en revanche en faisant la jointure à partir de la couche bati j'ai pu obtenir pour chaque bâtiment dan quel IRIS il se trouvait! A partir de là je fais un export CSV puis je travaille ce fichier après une conversion excel pour déterminer à l'aide d'un TCD mes sommes de surfaces bâties par IRIS! Et voilà
Dommage que je doive passer par l'export CSV mais le principal c'est que ça marche!
Hors ligne
#4 Thu 17 January 2019 13:51
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Requête SQL, enfin je pense que c'est ça ?
Bonjour,
Dommage que je doive passer par l'export CSV mais le principal c'est que ça marche!
Des alternatives plus ou moins complexes existent pour rester dans QGIS (indiquées non pas par ordre de complexité):
- créer une couche virtuelle à l'aide d'une requête SQL faisant l'agrégation (je pense que vous trouverez des discussions sur le forum pour composer quelque chose)
- sous QGIS 3, utiliser l'algorithme de jointure spatiale (résumé) (ou un nom du genre)
- créer un champ numérique dans la table IRIS et appliquer une expression avec les fonctions d'agrégats (voir l'aide si besoin), du type
Code:
aggregate(layer:='matablebatiment', --la couche dont on veut récupérer les informations aggregate:='sum', -- le genre de stats à opérer expression:="champsurfacedelatablebatiment", -- le champ sur lequel faire l'opération ou remplacer par $area filter:=within($geometry, geometry(@parent)) -- les entités à prendre en compte et notamment dans ce cas-ci, les bâtiments [b]contenus[/b] dans la géométrie de la couche parent càd la couche IRIS. )
nota: Toutes ces méthodes ne traitent pas uniformément les bâtiments qui seraient à cheval sur deux Iris (is that possible?)
Dernière modification par SANTANNA (Thu 17 January 2019 13:53)
Hors ligne