Pages: 1
- Sujet précédent - QGIS & Python: Attribuer une couleur selon un critère de sélection - Sujet suivant
#1 Fri 26 October 2018 12:03
- Clothilde B
- Juste Inscrit !
- Lieu: Bastia
- Date d'inscription: 18 Jan 2018
- Messages: 9
QGIS & Python: Attribuer une couleur selon un critère de sélection
Bonjour,
Voici la situation : j'ai une couche de polygones sur les communes et une couche de points pour l'ensemble des bornes de chaque commune.
Je souhaiterais s'il manque la géométrie d'une ou plusieurs bornes, que le polygone de la commune concernée soit mise en orange.
J'arrive déjà à sélectionner le polygone d'une commune selon son numéro:
Code:
import processing layer = processing.getObject('commune') query = '"num" = 99 ' selection = layer.getFeatures(QgsFeatureRequest().setFilterExpression(query)) layer.setSelectedFeatures([k.id() for k in selection])
Je sais aussi modifier la couleur de tous les polygones commune:
Code:
symbols = layer.rendererV2().symbols() symbol = symbols[0] symbol.setColor(QColor("orange")) qgis.utils.iface.mapCanvas().refresh() qgis.utils.iface.legendInterface().refreshLayerSymbology(layer)
La table attributaire de la couche borne contient le numéro de la borne, sa géométrie et le nom de la commune sur laquelle elle se situe. Cependant, dans cette table, il manque certaines géométries de bornes.
Il me reste alors à savoir attribuer la couleur "orange" à ou aux communes pour lesquelles la géométrie des bornes est absente.
Cela donnerait avec Pyqgis:
commune = sélection de la couche commune
borne = sélection de la couche borne
Si géométrie_borne est nulle alors récupérer le nom de la commune puis attribuer la couleur "orange" au polygone de cette commune
Merci pour votre aide,
Hors ligne
#2 Fri 26 October 2018 16:12
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS & Python: Attribuer une couleur selon un critère de sélection
Salut,
On peut réaliser cela en utilisant une vue, avec la source de données
sous-jacente ou une couche virtuelle dans QGIS [1] :
SELECT commune.*, COUNT(*) = COUNT(geometrie_borne) AS complet,
FROM commune JOIN borne ON commune.num = borne.num
GROUP BY commune.* --ici bien entendu grouper par tout les champs de commune
Une fois cette vue créée, on peut utiliser une symbologie
catégorisée avec l'attribut "complet".
[1]: https://docs.qgis.org/2.14/en/docs/user … ayers.html
Dernière modification par tumasgiu (Fri 26 October 2018 16:15)
Hors ligne
#3 Fri 26 October 2018 16:36
- Clothilde B
- Juste Inscrit !
- Lieu: Bastia
- Date d'inscription: 18 Jan 2018
- Messages: 9
Re: QGIS & Python: Attribuer une couleur selon un critère de sélection
Salut,
Je te remercie mais mon but est de faire sous Python un script d'alerte, qui une fois les couches chargées dans QGIS, m'affiche en orange les communes qui portent des géométries de bornes manquantes. Je saurai rajouter à cela un message d'alerte destiné à l'utilisateur.
Hors ligne
Pages: 1
- Sujet précédent - QGIS & Python: Attribuer une couleur selon un critère de sélection - Sujet suivant