QGIS में संपादन करते समय चयनित मल्टीपार्ट फीचर को सिंगलपार्ट फीचर्स में कैसे बदलें?


9

मल्टीपार्ट फीचर्स बनाने के लिए कई प्रश्न और संबंधित उत्तर हैं क्यूआरआईएस का उपयोग करके एक सिंगलपार्ट फीचर्स में लेयर:

लेकिन मेरे द्वारा देखे गए सभी समाधान, पूरी तरह से नई परत बनाते हैं और सभी मल्टीपार्ट जियोमेट्री को एकल में बदल देंगे।

तो सवाल यह है कि एक संपादन सत्र के दौरान, एक नए विकल्प को बनाने की आवश्यकता के बिना, एक मल्टीपार्ट फीचर को चुनिंदा रूप से सिंगलपार्ट फीचर में कैसे बदल सकता है ?

यह "मर्ज सिलेक्टेड फीचर्स" टूल के विपरीत होगा, और आर्कगिस में विस्फोट के समान है ।

क्या कोई प्लगइन ऐसा कर रहा है? यह पायथन कंसोल का उपयोग करके कैसे किया जा सकता है?

जवाबों:


18

इस सवाल से प्रेरित होकर और उदाहरण के रूप में कि "आसानी से" कोई भी व्यक्ति ओपन सोर्स का उपयोग करते समय अपना समाधान कैसे कर सकता है, मैंने एक संपादन सत्र के दौरान मल्टीपार्ट सुविधाओं को चुनिंदा "विस्फोट" करने के लिए अपना खुद का कोड बनाने की कोशिश की है।

मैंने पहली बार 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 आधिकारिक रिपॉजिटरी में पाया जा सकता है।


1
क्या इस मल्टीपार्ट -> QGIS के बिना एकल रूपांतरण कार्य करना संभव होगा? वहाँ एक रास्ता यह स्टैंडअलोन पायथन के साथ किया जा सकता है?
अखिल

ध्यान दें कि यह समाधान मैप कैनवस में संपादन के दौरान एक परत की विशेषताओं का हिस्सा चुनने पर निर्भर करता है। एक परत की सभी विशेषताओं को (आकार-प्रकार कहने के लिए) एकल भाग सुविधाओं में परिवर्तित करने के लिए, मुझे लगता है कि आप OGR लाइब्रेरी का उपयोग कर सकते हैं। इस कड़ी में एक नजर ।
अलेक्जेंड्रे नेटो

चीयर्स! मदद करता है..!!
अखिल

मैं एक ऐसी परत लेना चाहता हूं जो बहुगुणित बहुभुज है और इसे एकल भाग में परिवर्तित करें - मैं क्यूगिस में ऐसा करने के लिए अजगर कोड नहीं ढूंढ सकता। मैं देखता हूं कि वेक्टर के तहत एक कमांड है - ज्यामिति उपकरण - मल्टीपार्ट से सिंगलपार्ट्स। यही मैं चाहता हूं कि मुझे बस
केफल

@AlexandreNeto महान प्लगइन!
DPSSpatial
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.