Maaf telah menghidupkan topik ini lagi, tetapi tidak pernah membuat ini berhasil, dan sekarang saya membutuhkannya lagi. Di konsol pyhton saya mendapatkan dua lapisan dengan Layer = qgis.utils.iface.activeLayer()dan InputLayer = qgis.utils.iface.activeLayer(). Kemudian saya gunakan processing.runandload("qgis:clip",InputLayer,Layer,"output_file.shp")dan layer baru ditambahkan ke menu Layers dengan nama Terpotong . Tetapi lapisan itu kosong. Jika saya menggunakan dua layer ini dengan fungsi klip di dalam Qgis, layer output memiliki garis-garis dari kliping. Adakah yang salah? Saya tidak mendapatkan kesalahan.
Toke
Ini berfungsi jika saya menggunakan dua poligon, tetapi salah satu lapisan saya adalah garis dan bukan poligon. Ini berisi beberapa baris, dan saya bisa menggunakan layer ini untuk kliping saat melakukannya di Qgis.
Toke
2
Anda harus memiliki fitur yang ingin Anda klip dipilih. Saya telah mengedit jawaban untuk mencerminkan hal ini.
Tn. Purple
Bagaimana orang melakukan ini tanpa benar-benar membuat shapefile? Saya memiliki lapisan dengan ratusan poligon berbentuk cakram yang ingin saya ulas, gunakan masing-masing sebagai hamparan untuk satu lapisan data titik. Bisakah saya mendapatkan daftar objek QgsFeature saja?
J. Taylor
Anda harus mengajukan pertanyaan terpisah
Tn. Purple
5
Dengan asumsi bahwa Anda memiliki lapisan yang disebut "overlay" dan yang lain disebut "layer_to_clip" dimuat.
# 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")
Jawaban:
Tentu Anda bisa mendapatkan fungsinya dari kotak alat pemrosesan. Berikut cara menggunakannya: Sesuai http://docs.qgis.org/2.8/id/docs/user_manual/processing/console.html
Dari konsol Anda bisa mendapatkan daftar semua algoritma yang tersedia yang berisi kata "klip" dengan mengetik:
Kemudian Anda bisa mengetahui cara menggunakan fungsi apa yang tampaknya paling sesuai dengan:
Kemudian cukup gunakan algoritma dalam skrip Anda sebagai berikut:
Catatan: Algoritme hanya akan berfungsi pada fitur yang digeser "
Catatan di atas kode tidak valid untuk 3.0+ untuk contoh alglist yang dapat Anda lakukan:
untuk contoh alghelp yang dapat Anda lakukan:
Untuk QGIS3 lihat pertanyaan ini:
Apa alglist dan alghelp baru dalam Pemrosesan QGIS 3.0?
sumber
Layer = qgis.utils.iface.activeLayer()
danInputLayer = qgis.utils.iface.activeLayer()
. Kemudian saya gunakanprocessing.runandload("qgis:clip",InputLayer,Layer,"output_file.shp")
dan layer baru ditambahkan ke menu Layers dengan nama Terpotong . Tetapi lapisan itu kosong. Jika saya menggunakan dua layer ini dengan fungsi klip di dalam Qgis, layer output memiliki garis-garis dari kliping. Adakah yang salah? Saya tidak mendapatkan kesalahan.Dengan asumsi bahwa Anda memiliki lapisan yang disebut "overlay" dan yang lain disebut "layer_to_clip" dimuat.
sumber