回答:
もちろん、処理ツールボックスから関数を取得できます。使用方法は次のとおりです:http : //docs.qgis.org/2.8/en/docs/user_manual/processing/console.html
コンソールから、次のように入力して、「clip」という単語を含む使用可能なすべてのアルゴリズムのリストを取得できます。
import processing
processing.alglist("clip")
次に、最も適切な関数がどのように表示されるかを以下で使用する方法を見つけることができます。
processing.alghelp("qgis:clip")
次に、次のようにスクリプトでアルゴリズムを使用します。
processing.runalg("qgis:clip",inputlayer,overlaylayer,"output_file.shp")
注:このアルゴリズムは、選択されたフィーチャーでのみ機能します。
上記のコードは、実行できるalglistの例の3.0以降では無効です。
print([a.id() for a in gsApplication.processingRegistry().algorithms() if "clip" in a.id()])
あなたができるalghelpの例では:
processing.algorithmHelp("qgis:clip")
QGIS3については、次の質問を参照してください。
Layer = qgis.utils.iface.activeLayer()
してInputLayer = qgis.utils.iface.activeLayer()
。次に、使用するprocessing.runandload("qgis:clip",InputLayer,Layer,"output_file.shp")
と、新しいレイヤーが[ クリップ ]という名前で[レイヤー]メニューに追加されます。しかし、レイヤーは空です。Qgis内のクリップ機能でこれらの2つのレイヤーを使用すると、出力レイヤーにクリッピングからのラインが含まれます。何がいけないのか?エラーは出ません。
「overlay」というレイヤーと「layer_to_clip」というレイヤーがロードされていると仮定します。
# 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")