QGIS'te bir katmanı nasıl çoğaltabilirim?


9

Aynı vektör verilerini farklı katmanlarla farklı şekillerde görüntülemek istiyorum. Katman stilini 1.8+ olarak kopyalayıp yapıştırmak çok kullanışlı olsa da , bir katman seçip doğrudan kopyalamak veya çoğaltmak için sağ tıklamak güzel olurdu.

Python komutu gibi bunu yapmanın kolay bir yolu var mı?


Güncelleme: @ dakcarto'nun önerisi mükemmel çalışıyor. Birçok yinelenen katman eklemem gerektiğinden, gerektiği kadar döngü yapması için uyarladım:

for n in range(1,5): 
    iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())

Tek sorun, yeni katmanın activeLayer haline gelmesidir, bu nedenle, örnek_clon1_clone3_clone4_clone5'e kadar example_clone1, example_clone1_clone2 ile biten "_clone" ve sayıyı önceki ada ekler. Şimdi orijinal olarak seçilen katmandan nasıl çoğaltılacağını anlamanız gerekiyor.


Bu gerçekten bir cevap değil, ama aynı vektör katmanını bir projeye iki kez eklerseniz QGIS umursamıyor.
L_Holcombe

evet, daha sonra birçok kopya ekledim, ama sadece "katman ekle" ve her seferinde katman seçmek için göz atarak. Bir katmanı 20 kez çoğaltmaya gerek duymadan yorucu hale gelen en az 4 tıklama ve bazı kaydırma.
Simbamangu

1
@Simbamangu Bu konuda farklı görüşler var, ben CBS wiki geçirdim. Görüşünüzü kesinlikle takdir ediyorum, benimkini paylaşmama izin verin. Soru başlığını, sorunun özüyle ilgili bir yön işareti olarak görüyorum. Her şey sorularla ilgili olduğu için, "Nasıl yaparım ...", "Neden ..." girişlerine bunun bir soru olduğu açık olduğu için yeni bir şey ekleyin. Soruyu daha okunabilir yapabilir, ancak neyle ilgili olduğunu görmek için sorunun gövdesine bakmanız gerekir. "Nasıl yapılır ..." ile başlayan soruların tamamını görmek en azından benim için verimsiz.
TomazicM

1
Ve eski sorunuzun başlığını değiştirmem neden? Bazıları eylem nedeniyle CBS ana sayfasında çarptı ve soruların "Nasıl" ve "Neden" bölümlerini kaldırma (kötü) alışkanlığı olduğunu itiraf ediyorum.
TomazicM

1
@Simbamangu Ben şahsen "Nasıl" ve "Neden" olmadan soruları tercih ediyorum çünkü bu kelimeler içeriğe hiçbir şey katmıyor. Başlığı daha readabale yapabilirler, ancak başlık biraz belirsizse herhangi bir sorun görmüyorum, çünkü her şeyin ne olduğunu görmek için zaten soru gövdesini okumak zorunda. PolyGeo'nun bunu yaptığını gördükten ve soru gönderirken / düzenlerken iyi uygulamalarla ilgili bazı meta makaleleri okuduktan sonra bu kelimeyi kaldırmaya başladığımı itiraf ediyorum.
TomazicM

Yanıtlar:


10

Bununla ilgili iki özellik isteği vardır ( # 5899 ve # 1483 ). Bu kesinlikle yapılabilir bir özelliktir ve bir geliştirici eklemek isterse muhtemelen sürüm 2.0'a dahil edilebilir; veya bir Python eklentisi geliştiricisi bunu biraz dikkate aldı.

# 5899 sorunu, bir katmanı çoğaltmak için bazı Python kodlarını da içerir (geliştirici Giuseppe Sucameli tarafından gönderildi):

Bu arada, vektör katmanını seçin, ardından QGis python konsolunu açın ve çalıştırın:

iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone", vl.providerType())

Önceki kod haritaya aynı alt katmanı ekler.

Bu bir önceki gibi tek satırlık Python komut dosyasını kullanarak bunu yapmak zor, ama alt katman adını biliyorsanız sadece yerini alabilir vl.source()ile vl.source().split("|")[0] + "|layername=my_sublayer_name"my_sublayer_name senin alt katmanın adıdır.

Çoğaltma kodunu çalıştırdıktan sonra görünür, orijinal katmanın stilini kopyalamanız / yapıştırmanız gerekir.


Mükemmel çalışıyor. Katman stilini yapıştırmak için anahtar olarak 'v' ekleyerek, katmanın ve stilin çoğaltılması artık sadece birkaç saniye sürüyor.
Simbamangu

Bu özellik c11df1aa79 revizyonunda uygulanır. hub.qgis.org/projects/quantum-gis/repository/revisions/…
Vladimir

2
Bu ana dal için Python bağlaması şu şekilde çalışır: iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()burada my_layer, açıklamada etkin, seçilen katmana ayarlanmış bir QgsMapLayer; daha sonra, actionDuplicateLayer (), göstergede seçilen katmanlar üzerinde çalışmak üzere tetiklenir (varsayılan).
dakcarto

1

QGIS'in son sürümlerinde artık "Yinelenen Katman" seçeneği var. Çoğaltmak istediğiniz katmanı sağ tıklayın, hemen altına yeni bir kopya ekleyecektir.

Yan not: View --> RefreshBir katmanda ilerlemek için bir katmanda yapılan değişiklikler için vurmanız gerekiyor gibi görünüyor .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.