Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
Pages: 1
- Sujet précédent - QGIS: comment recuperer les Elts selectionnes dans une "listview"? - Sujet suivant
#1 Mon 08 July 2019 17:31
- zakarya2626
- Participant occasionnel
- Date d'inscription: 9 May 2019
- Messages: 13
QGIS: comment recuperer les Elts selectionnes dans une "listview"?
Je suis en train de développer un plugin sur QGIS 2.8.2 en utilisant Pyqt 4.
L'idée est d'utiliser la fonction 'qgis:extractbylocation' afin d'extraire la zone d'étude.
Code:
# Récupérer tous les iris qui s'intersectent avec la zone d'étude res = processing.runalg('qgis:extractbylocation', irisLayer, layerZone, u'intersects', 0, None) # Créer une couche vector issue de l'extraction des IRIS dans la zone ObjectifVilleExtract.irisLayer = QgsVectorLayer(res['OUTPUT'], "IRIS dans la zone d'etude", "ogr") QgsMapLayerRegistry.instance().addMapLayer(ObjectifVilleExtract.irisLayer) # Définir un ecodage Windows compatible avec le français ObjectifVilleExtract.irisLayer.setProviderEncoding(u'iso-8859-1') # Modifier l'encoage ObjectifVilleExtract.irisLayer.dataProvider().setEncoding(u'iso-8859-1') # Vérifier que le couche est valide sinon afficher que la couche est erronée if not ObjectifVilleExtract.irisLayer.isValid(): print "Layer failed to load!"
Après afficher les résultats dans la listeview :
Code:
ObjectifVilleExtract.features = ObjectifVilleExtract.irisLayer.getFeatures() ObjectifVilleExtract.model = QStandardItemModel(ObjectifVilleExtract.features) for feature in ObjectifVilleExtract.features: item = QStandardItem(feature['nom_iris']) item.setCheckable(True) ObjectifVilleExtract.model.appendRow(item) self.dlg.listView_3.setModel(ObjectifVilleExtract.model) self.dlg.listView_3.show()
Maintenat je veux récupérer les éléments sélectionnés sur la listeview (qui sont des entités) afin d'en appliquer la requête suivante :
Code:
iter = ObjectifVilleExtract.features.getFeatures() for feature in iter : q1 = "SELECT nom_com FROM france_full_data.contours_iris WHERE code_iris='" + feature['code_iris'] + "' " I tried to use the following code : for feature in ObjectifVilleExtract.features: while ObjectifVilleExtract.model.item(feature['nom_iris']) : if ObjectifVilleExtract.model.item(feature['nom_iris']).ischecked(): ObjectifVilleExtract.iter = ObjectifVilleExtract.irisLayer.getFeatures() irisTab=[] for feature in ObjectifVilleExtract.iter : q1 = "SELECT nom_com FROM france_full_data.contours_iris WHERE code_iris='" + feature['code_iris'] + "' "
le résultat toujours est vide !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: comment recuperer les Elts selectionnes dans une "listview"? - Sujet suivant