इस सवाल से प्रेरित होकर और उदाहरण के रूप में कि "आसानी से" कोई भी व्यक्ति ओपन सोर्स का उपयोग करते समय अपना समाधान कैसे कर सकता है, मैंने एक संपादन सत्र के दौरान मल्टीपार्ट सुविधाओं को चुनिंदा "विस्फोट" करने के लिए अपना खुद का कोड बनाने की कोशिश की है।
मैंने पहली बार QGIS 1.8 एपीआई की खोज की है , और इस कोड के टुकड़े के साथ बाहर आया है जो नौकरी करने के लिए काम करता है:
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)
मैं एक अनुभवी प्रोग्रामर नहीं हूं, इसलिए कोड सबसे कुशल नहीं हो सकता है।
अगली खड़ी एक प्लगइन बनाने के लिए होगा ... या कम से कम, करने की कोशिश!
अद्यतन:
मैं प्लगइन बनाने में सक्षम था। इसे मल्टीपार्ट स्प्लिट कहा जाता है , और यह QGIS आधिकारिक रिपॉजिटरी में पाया जा सकता है।