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 Mon 03 April 2023 15:33
- John_72
- Juste Inscrit !
- Lieu: Nouzilly
- Date d'inscription: 23 Mar 2023
- Messages: 2
QGIS 3.30/Script Python: Copie une selection de points
Bonjour,
En Python, je souhaite, depuis QGIS et par rapport à une couche Shapefile, copier une sélection de points vers une couche temporaire.
voici le script
# Récupération de la couche active dans QGIS
layer = iface.activeLayer()
# Affichage des entités sélectionnées dans la console de QGIS
selected_features = layer.selectedFeatures()
print("Nombre d'entités sélectionnées : ", len(selected_features))
# Création d'une nouvelle couche temporaire pour stocker les points sélectionnés
temp_layer = QgsVectorLayer('Point?crs='+layer.crs().authid(), 'temp_layer', 'memory')
temp_layer.startEditing()
# Copie des entités sélectionnées de la couche d'origine vers la couche temporaire
for feature in selected_features:
temp_layer.addFeature(feature)
# Enregistrement des modifications sur la couche temporaire
temp_layer.commitChanges()
# Ajout de la couche temporaire à QGIS pour visualisation
QgsProject.instance().addMapLayer(temp_layer)
Résultat : je n'ai pas de message d'erreur, la couche temporaire a bien été créee,
le nombre de fichiers sélectionnés s'affiche correctement mais la couche est vide, aucun point n'a été copié.
Avez-vous déjà rencontré ce problème ?
Merci d'avance pour vos réponses, John
Hors ligne
#2 Mon 03 April 2023 16:02
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3824
Re: QGIS 3.30/Script Python: Copie une selection de points
Bonjour,
Dans la doc, il y a un exemple
Code:
#Créer une couche mémoire à partir de certaines entites Ids from qgis.core import QgsFeatureRequest memory_layer = layer.materialize(QgsFeatureRequest().setFilterFids(layer.selectedFeatureIds())) QgsProject.instance().addMapLayer(memory_layer)
Hors ligne
#3 Tue 04 April 2023 11:28
- John_72
- Juste Inscrit !
- Lieu: Nouzilly
- Date d'inscription: 23 Mar 2023
- Messages: 2
Re: QGIS 3.30/Script Python: Copie une selection de points
Super, ça fonctionne très bien.
Comme quoi j'aurais du passer plus de temps a lire les bases.
bien cordialement
John
Hors ligne