Réponses:
Bien sûr, vous pouvez obtenir la fonction de la boîte à outils de traitement. Voici comment l'utiliser: selon http://docs.qgis.org/2.8/en/docs/user_manual/processing/console.html
Depuis la console, vous pouvez obtenir une liste de tous les algorithmes disponibles contenant le mot "clip" en tapant:
import processing
processing.alglist("clip")
Ensuite, vous pourrez découvrir comment utiliser ce qui semble être la fonction la plus appropriée avec:
processing.alghelp("qgis:clip")
Ensuite, utilisez simplement l'algorithme dans votre script comme suit:
processing.runalg("qgis:clip",inputlayer,overlaylayer,"output_file.shp")
Remarque: l'algorithme ne fonctionnera que sur les fonctionnalités sélectionnées "
Remarque: le code ci-dessus n'est pas valide pour 3.0+ pour l'exemple d'alglist que vous pouvez faire:
print([a.id() for a in gsApplication.processingRegistry().algorithms() if "clip" in a.id()])
pour l'exemple alghelp, vous pouvez faire:
processing.algorithmHelp("qgis:clip")
Pour QGIS3, voyez cette question:
Quels sont les nouveaux alglist et alghelp dans le traitement QGIS 3.0?
Layer = qgis.utils.iface.activeLayer()
et InputLayer = qgis.utils.iface.activeLayer()
. Ensuite, j'utilise processing.runandload("qgis:clip",InputLayer,Layer,"output_file.shp")
et le nouveau calque est ajouté au menu Calques avec le nom Coupé . Mais la couche est vide. Si j'utilise ces deux couches avec la fonction de clip dans Qgis, la couche de sortie a les lignes de l'écrêtage. Quelqu'un qui peut se tromper? Je ne reçois aucune erreur.
En supposant que vous avez un calque appelé "superposition" et un autre appelé "layer_to_clip" chargé.
# get the overlay layer in the console
overlay_layer = [x for x in iface.legendInterface().layers() if x.name() == 'overlay'][0]
# get the layer to clip in the console
layer_to_clip = [x for x in iface.legendInterface().layers() if x.name() == 'layer_to_clip'][0]
# run the algorithm and output the results in /tmp/output.shp
processing.runalg("qgis:clip", overlay_layer, layer_to_clip, "/tmp/output.shp")