Seçilen bir çok parçalı özelliği QGIS'te düzenlerken tek parçalı özelliklere nasıl dönüştürürüm?


9

Çok parçalı özellik katmanının QGIS kullanarak tek parçalı özelliklere nasıl dönüştürüleceğine dair çeşitli sorular ve ilgili cevaplar vardır:

Ancak gördüğüm tüm çözümler tamamen yeni bir katman oluşturuyor ve TÜM çok parçalı geometrileri tek bir geometriye dönüştürüyor.

Öyleyse sorular, bir düzenleme oturumu sırasında, yeni katmanlar oluşturmaya gerek kalmadan çok bölümlü bir özelliği seçici olarak tek bölümlü bir özelliğe nasıl dönüştürebilir?

"Seçili özellikleri birleştir" aracının tersi ve ArcGIS'te patlamaya benzer .

Bunu yapan herhangi bir eklenti var mı? Python konsolu kullanılarak bu nasıl yapılabilir?

Yanıtlar:


18

Açık Kaynak kullanırken kendi çözümlerini nasıl "kolayca" yapabileceğinin bir örneği olarak bu soru ve cevaptan esinlenerek, bir düzenleme oturumu sırasında çok parçalı özellikleri seçici olarak "patlatmak" için kendi kodumu oluşturmaya çalıştım.

QGIS 1.8 API'sini ilk kez araştırdım ve işi yapmak için dikiş yapan bu kod parçasıyla çıktım :

layer = qgis.utils.iface.mapCanvas().currentLayer()
remove_list = []

for feature in layer.selectedFeatures():
    geom = feature.geometry()
    # check if feature geometry is multipart
    if geom.isMultipart():
        remove_list.append(feature.id())
        new_features = []
        temp_feature = QgsFeature(feature)
        # create a new feature using the geometry of each part
        for part in geom.asGeometryCollection ():
            temp_feature.setGeometry(part)
            new_features.append(QgsFeature(temp_feature))
        # add new features to layer
        layer.addFeatures(new_features, False)

# remove the original (multipart) features from layer
if len(remove_list) > 0:
    for id in remove_list:
        layer.deleteFeature (id)    

Ben deneyimli bir programcı değilim, bu yüzden kod en verimli olmayabilir.

Bir sonraki dikim bir eklenti yapmak olacak ... Ya da en azından, deneyin!

GÜNCELLEME:
Eklentiyi oluşturabildim. Buna Multipart Split denir ve QGIS resmi deposunda bulunabilir.


1
Bu Çok Parçalı -> Tek Parçalı dönüştürmeyi QGIS olmadan çalışmak mümkün müdür? Standalone Python ile yapılabilecek bir yol var mı? @Alexandre Neto
Akhil

Bu çözümün, harita tuvalinde düzenleme sırasında bir katmanın özelliklerinin bir kısmını seçmeye dayandığına dikkat edin. Bir katmanın tüm özelliklerini (şekil dosyası gibi) tek parça özelliklerine dönüştürmek için OGR kütüphanesini kullanabileceğinizi düşünüyorum. Bu bağlantıya bir göz atın .
Alexandre Neto

Şerefe! Yardım eder..!!
Akhil

Bir çok parçalı çokgen olan bir katman almak ve tek bir parça dönüştürmek istiyorum - qgis bunu yapmak için python kodunu bulamıyorum. Vektör - geometri araçları - Çoklu bölmelerden Tek Parçalara kadar bir komut olduğunu görüyorum. istediğim şey bu sadece python sözdizimine ihtiyacım var
kflaw

@AlexandreNeto harika bir eklenti!
DPSSpatial
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.