Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

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.

#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é smile
Alors quand en plus ce qui me semble logique ne fonctionne pas, c'est TRÈS compliqué ! sad

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 ? sad
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. smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB