Message posté par : zakarya2626
----------------------------------------
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 !
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=323178#p323178
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net