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.