Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
Pages: 1
- Sujet précédent - QGIS 2.8 & PyQGIS : mise à jour champ avec surface calculée - Sujet suivant
#1 Thu 23 April 2015 15:50
- Sam_Dalembert
- Participant actif
- Lieu: Mérignac
- Date d'inscription: 5 Aug 2009
- Messages: 121
QGIS 2.8 & PyQGIS : mise à jour champ avec surface calculée
Bonjour à tous,
Malheureusement je n'y connais rien en python, donc j'essaye de reprendre des bouts de code par-ci par-là...forcément c'est compliqué
Alors quand en plus ce qui me semble logique ne fonctionne pas, c'est TRÈS compliqué !
Quand j'affiche la surface calculée de tous les polygones de ma couche active, ça fonctionne :
Code:
import processing layer = qgis.utils.iface.activeLayer() features = layer.getFeatures() for feature in features: geom = feature.geometry() print "Area:", geom.area()
Mais quand je veux mettre à jour mon champ avec -quasiment- le même code, ça ne fonctionne pas :
Code:
import processing layer = qgis.utils.iface.activeLayer() features = layer.getFeatures() for feature in features: geom = feature.geometry() attrs = feature.attributes() caps = layer.dataProvider().capabilities() if caps & QgsVectorDataProvider.ChangeAttributeValues: attrs = { 17 : geom.area() } layer.dataProvider().changeAttributeValues({ 255:attrs,})
Quand je mets un nombre comme attribut (à la place de geom.area() ), ça fonctionne. Mais avec la surface calculée, ça ne fonctionne pas...
Comment faire ?
J'ai beau chercher dans les tutoriels, sur google, je ne trouve rien sur la mise à jour d'un champ avec une géométrie calculée.
Merci pour vos réponses.
Hors ligne
#2 Sat 25 April 2015 21:04
- bidounight
- Participant occasionnel
- Date d'inscription: 17 Mar 2010
- Messages: 27
Re: QGIS 2.8 & PyQGIS : mise à jour champ avec surface calculée
Le "Et" logique en python s'écrit "and" et non pas "&". De là à ce que le code marche, il y a peut-être d'autres pas.
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.8 & PyQGIS : mise à jour champ avec surface calculée - Sujet suivant