Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.
Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les
FAQ SIG.
Vous devez vous inscrire
avant de pouvoir poster.
Impossible de valider les changements suite à la fonction convexHull
Bonjour ,
J'ai une couche de bâtiment, tirée des données INSEE. Je souhaite obtenir l'enveloppe convexe de chacun des bâtiments de cette couche via la commande python pour ensuite l'intégrer dans mon plug-in. Le code fonctionne jusqu'au moment d'arrêter l'édition et d'enregistrer les changements apportés à la couche "convexe".
J'ai essayé après avoir mis mon code dans la console python, de le faire manuellement via l'interface de Qgis mais cela ne fonctionne pas non plus. Pourriez-vous jeter un coup d’œil et me dire quelle commande dois-je ajouter ou modifier pour que cela fonctionne svp ?
Merci par avance
from qgis.core import *
import qgis.utils
layer = iface.activeLayer()
#Extrait CRS du layer
CRS = layer.crs().postgisSrid()
URI = "Polygon?crs=epsg:"+str(CRS)+"&field=id:integer""&index=yes"
#Création d'une couche polygone pour convexHull
mem_layer = QgsVectorLayer(URI,"convexhull","memory")
#Ajout de la couche à l'interface de travail
QgsMapLayerRegistry.instance().addMapLayer(mem_layer)
#Preparation de mem_layer pour l'edition
mem_layer.startEditing()
for feat in layer.getFeatures():
geom = feat.geometry()
convexhull = geom.convexHull()
feat2 = QgsFeature()
feat2.setGeometry(convexhull)
feat2.setAttributes([1])
mem_layer.addFeature(feat2, True)
#Arret de l'édition et enregistrement des changements
mem_layer.commitChanges()
iface.mapCanvas().refresh()
Dernière modification par gene ; 04/07/2017 à 12h02.
Liens sociaux