Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

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.

Affichage des résultats 1 à 3 sur 3
  1. #1

    Date d'inscription
    juin 2017
    Emploi
    Etudiante en école d'ingénieur
    Messages
    7

    Question 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 à 13h02.

  2. #2
    Modérateur et rédacteur Supporter(rice)


    Date d'inscription
    octobre 2005
    Localisation
    Louvain-la-neuve
    Emploi
    Géologue
    Organisme
    Université Catholique de Louvain - Région Wallonne
    Messages
    2 632

    Par défaut Re : Impossible de valider les changements suite à la fonction convexHull

    Simplement en modifiant l'ordre des choses

    Dans la console Python

    - Première solution


    mem_layer = QgsVectorLayer(URI,"convexhull","memory")
    mem_layer.startEditing()
    for feat in layer.getFeatures():
    convexhull = feat.geometry().convexHull()
    seg = QgsFeature()
    seg.setGeometry(convexhull)
    seg.setAttributes([1])
    mem_layer.addFeature(seg, True)
    mem_layer.commitChanges()
    QgsMapLayerRegistry.instance().addMapLayers([mem_layer])



    - Deuxième solution


    mem_layer = QgsVectorLayer(URI,"convexhull2","memory")
    pr = mem_layer.dataProvider()
    for feat in layer.getFeatures():
    convexhull = feat.geometry().convexHull()
    seg = QgsFeature()
    seg.setGeometry(convexhull)
    seg.setAttributes([1])
    pr.addFeatures( [seg] )
    mem_layer.updateExtents()
    QgsMapLayerRegistry.instance().addMapLayers([mem_layer])
    Dernière modification par gene ; 04/07/2017 à 18h16.
    "Caminante, no hay camino, el camino se hace al andar" A. Machado

  3. #3

    Date d'inscription
    juin 2017
    Emploi
    Etudiante en école d'ingénieur
    Messages
    7

    Par défaut Re : Impossible de valider les changements suite à la fonction convexHull

    Merci beaucoup ! ça fonctionne

 

 

Discussions similaires

  1. [ArcGIS 10.x] Impossible d'imprimer (aucune imprimante reconnue) ou exporter (fonction inactive)
    Par MacGeol dans le forum Assistance Technique
    Réponses: 1
    Dernier message: 24/11/2014, 17h42
  2. [ArcGIS 9.x] VBA Test sur Saisie Incompléte Cmd Valider
    Par Spacejo dans le forum Programmation
    Réponses: 0
    Dernier message: 02/02/2011, 09h35
  3. [MapBasic 6.x] valider/fermer popup automatiquement
    Par -ADX- dans le forum Programmation
    Réponses: 0
    Dernier message: 10/08/2010, 15h13
  4. [Logiciel] Vérifier/valider son code javascript
    Par n314 dans le forum Assistance Logiciel
    Réponses: 0
    Dernier message: 17/05/2010, 08h05
  5. [MapBasic 8.x] Comment valider une date?
    Par Poncho dans le forum Programmation
    Réponses: 3
    Dernier message: 15/08/2006, 11h49

Les tags pour cette discussion

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •