Message posté par : louloupzh18
----------------------------------------
Bonjour,
L'utilisation de commandes en python est-elle envisageable ? Personnellement
j'aurai traité le problème comme cela de mon coté :
-----------------
Code :
from qgis.core import QgsProject, QgsVectorLayer, QgsFeature, QgsField, QgsFields
from qgis.PyQt.QtCore import QVariant
# Obtenez la couche de points à partir du nom de la couche
points = QgsProject.instance().mapLayersByName('points')[0]
# Créez une nouvelle couche pour stocker les zones tampons
resultat = QgsVectorLayer("Polygon?crs=epsg:2154", "buffer_layer",
"memory")
# Ajoutez la nouvelle couche au projet
QgsProject.instance().addMapLayer(resultat)
# Préparez la couche de buffer pour l'édition
resultat.startEditing()
# Ajoutez les champs nécessaires à la couche de buffer
fields = QgsFields()
fields.append(QgsField("id", QVariant.Int))
fields.append(QgsField("diametre", QVariant.Double))
resultat.dataProvider().addAttributes(fields)
resultat.updateFields()
# Parcourez chaque entité de la couche de points
for feature in points.getFeatures():
diametre = feature['diametre'] # Assurez-vous que le champ s'appelle
'diametre'
# Créez la géométrie tampon
buffer_geom = feature.geometry().buffer(diametre, 20)
# Ajoutez la géométrie tampon à la nouvelle couche
buffer_feature = QgsFeature()
buffer_feature.setGeometry(buffer_geom)
buffer_feature.initAttributes(2) # Initialisez deux attributs
buffer_feature.setAttribute(0, feature.id()) # Définissez le premier attribut comme
l'ID de l'entité
buffer_feature.setAttribute(1, diametre) # Définissez le deuxième attribut comme le
diamètre
resultat.dataProvider().addFeature(buffer_feature)
# Terminez l'édition et enregistrez les modifications
resultat.commitChanges()
-----------------
A adapter bien sûr en fonction du besoin.
En espérant que cela aide,
louloupzh
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=362657#p362657
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net