Message posté par : Mathieu CHAILLOUX (fdrmc(a)free.fr)
----------------------------------------
-----------------
Citation :
Est-ce qu'un feature suffit en input?
-----------------
Non, il faut une couche.
J'ai déjà eu à faire ce genre d'opération et ma solution était de sélectionner
chaque feature comme une nouvelle couche temporaire puis d'appeler l'algorithme à
appliquer (pour vous le buffer) sur cette nouvelle couche.
Voici un exemple de code qu'il vous faudra adapter :
-----------------
Code :
for count, report_feat in enumerate(reporting.getFeatures()):
multi_feedback.setCurrentStep(count)
report_id = report_feat.id()
reporting.selectByIds([report_id])
select_path = params.mkTmpLayerPath("reportingSelection" +
str(report_feat.id()) + ".gpkg")
qgsTreatments.saveSelectedFeatures(reporting,select_path,context,feedback)
report_computed_path = params.mkTmpLayerPath("reportingComputed" +
str(report_feat.id()) + ".gpkg")
parameters = { EffectiveMeshSizeGlobalAlgorithm.INPUT : source,
EffectiveMeshSizeGlobalAlgorithm.SELECT_EXPR : select_expr,
EffectiveMeshSizeGlobalAlgorithm.BOUNDARY : select_path,
EffectiveMeshSizeGlobalAlgorithm.CRS : crs,
EffectiveMeshSizeGlobalAlgorithm.CUT_MODE : cut_mode,
EffectiveMeshSizeGlobalAlgorithm.UNIT : unit,
EffectiveMeshSizeGlobalAlgorithm.OUTPUT : report_computed_path
}
qgsTreatments.applyProcessingAlg(FragScapeAlgorithmsProvider.NAME,
EffectiveMeshSizeGlobalAlgorithm.ALG_NAME,
parameters,context,multi_feedback)
-----------------
Pour créer un chemin correspondant à une couche temporaire :
QgsProcessingUtils.generateTempFilename
Pour sauvegarder les entités sélectionnées dans une couche : native:saveselectedfeatures
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=321827#p321827
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