Pages: 1
- Sujet précédent - QGIS: Resultat union d'objets sélectionnes dans couche temporaire - Sujet suivant
#1 Thu 03 August 2023 08:43
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
QGIS: Resultat union d'objets sélectionnes dans couche temporaire
Bonjour,
Voilà, j'ai dans ma sélection plusieurs objets et je voudrais faire l'union de ces objets.
Ils peuvent être jointif ou distants (Dans ce dernier cas, un objet multi part sera créé).
Je voudrais que cet objet nouvellement créé le soit dans une couche temporaire. afin de ne pas polluer la couche initiale
Je n'ai rien trouvé dans les docs ni dans le forum
Voici ce que je pense faire :
Code:
liste = calque.selectedFeatures() geoms = [f.geometry() for f in liste] g = QgsGeometry.unaryUnion(geoms)
Mais comment aire pour que ce nouvel objet soit créé dans la couche temporaire et comment l'a créé ?
Merci de vos réponse et bonne journée, PYJ
Hors ligne
#2 Fri 11 August 2023 07:07
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS: Resultat union d'objets sélectionnes dans couche temporaire
Bonjour,
Avez-vous une idée ?
Merci et bonne journée
PYJ
Hors ligne
#3 Mon 04 September 2023 08:29
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS: Resultat union d'objets sélectionnes dans couche temporaire
Bonjour,
Pour compléter ma problématique, je voudrais que le résultat de cette opération (unaryUnion) ne soit pas dans la couche source, mais ailleurs (voir même être stocké dans un fichier Shape.
Comment puis-je procéder ?
Merci de vos réponses et bonne journée
PYJ
Hors ligne
#4 Wed 13 September 2023 22:35
- louloupzh18
- Participant occasionnel
- Lieu: Le Mans
- Date d'inscription: 9 Apr 2015
- Messages: 11
Re: QGIS: Resultat union d'objets sélectionnes dans couche temporaire
Bonjour,
Voici un exemple de script permettant de sélectionner des données, les regrouper et les enregistrer dans une couche temporaire. En deuxième partie l'enregistrement au format shapefile du résultat.
Code:
import processing batiments = QgsProject.instance().mapLayersByName('batiments')[0] #Recupérer la couche sur laquelle vous souhaitez selectionner des données selected_features = processing.run("qgis:selectbyattribute", {'INPUT':batiments,'FIELD':'type','OPERATOR':0,'VALUE':'apartments','METHOD':0, 'OUTPUT':'TEMPORARY_OUTPUT'}) #Selection par attributs apartments_layer = selected_features['OUTPUT'] #enregistrement du résultat dans une nouvelle couche union = processing.run("native:dissolve", {'INPUT':apartments_layer,'FIELD':[],'SEPARATE_DISJOINT':False,'OUTPUT':'TEMPORARY_OUTPUT'}) #Regrouper les entites selectionnées unaryUnion = union['OUTPUT'] #enregistrement du résultat dans une nouvelle couche QgsProject.instance().addMapLayer(unaryUnion) #Affichage du résultat dans qgis. unaryUnion est la couche temporaire générée #Pour enregistrer le résultat en shapefile: shapefile_path = "C:/../fichier.shp" #Définir l'emplacement de la nouvelle couce à crerr writer = QgsVectorFileWriter.writeAsVectorFormat(unaryUnion, shapefile_path, "UTF-8", batiments.sourceCrs(), "ESRI Shapefile") #Copie des données dans cette nouvelle couche resultat = QgsVectorLayer(writer, shapefile_path, "ogr") #Conversion du résultat en shapefile QgsProject.instance().addMapLayer(resultat) #Ajout du shapefile dans l'interface QGIS
Est-ce que cela répond au besoin ? Ne pas hésiter si besoin d'éléments complémentaires
Bien cordialement,
louloupzh
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Resultat union d'objets sélectionnes dans couche temporaire - Sujet suivant