কিউজিআইএস-এ সম্পাদনা করার সময় একটি নির্বাচিত মাল্টিপার্ট বৈশিষ্ট্যটিকে কীভাবে সিঙ্গলপার্ট বৈশিষ্ট্যে রূপান্তর করতে?


9

কিউজিআইএস ব্যবহার করে একটি একক পার্ট বৈশিষ্ট্যগুলিকে একাধিক বৈশিষ্ট্য স্তরকে কীভাবে তৈরি করা যায় তার জন্য বেশ কয়েকটি প্রশ্ন এবং স্বতন্ত্র উত্তর রয়েছে:

তবে আমি যে সমস্ত সমাধান দেখেছি, সম্পূর্ণ নতুন স্তর তৈরি করে এবং সমস্ত মাল্টিপার্ট জ্যামিতিকে একক রূপান্তরিত করে।

সুতরাং প্রশ্নগুলি হ'ল, কোনও এডিট সেশনের সময় কীভাবে নতুন স্তর তৈরি করার প্রয়োজন ছাড়াই বেছে বেছে একটি মাল্টিপার্ট বৈশিষ্ট্যটিকে একটি একক পার্ট বৈশিষ্ট্যে রূপান্তর করা যায়?

এটি "মার্জ নির্বাচিত বৈশিষ্ট্যগুলি" সরঞ্জামের বিপরীতে এবং আরকজিআইএসে বিস্ফোরণের অনুরূপ হবে ।

এখানে কি কোনও প্লাগইন রয়েছে? পাইথন কনসোল ব্যবহার করে এটি কীভাবে করা যায়?

উত্তর:


18

ওপেন সোর্স ব্যবহার করার সময় কেউ কীভাবে "সহজেই" নিজস্ব সমাধান তৈরি করতে পারে তার উদাহরণ হিসাবে এই প্রশ্নের দ্বারা উত্তর দিয়ে অনুপ্রাণিত হয়ে আমি সম্পাদনা সেশনের সময় বেছে বেছে "বিস্ফোরিত" মাল্টিপার্ট বৈশিষ্ট্যগুলির জন্য নিজস্ব কোড তৈরি করার চেষ্টা করেছি।

আমি প্রথমবারের মতো কিউজিআইএস 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
কি কি জিজিআইএস ছাড়াই এই মাল্টি-পার্ট -> সিঙ্গেল পার্ট রূপান্তরটি কাজ করা সম্ভব হবে? স্ট্যান্ডেলোন পাইথন দিয়ে এটি করার কোনও উপায় আছে কি? @ আলেকজান্দে নেটো
অখিল

লক্ষ্য করুন যে এই সমাধানটি মানচিত্রের ক্যানভাসে সম্পাদনার সময় কোনও স্তরের বৈশিষ্ট্যগুলির অংশ বেছে নেওয়ার উপর নির্ভর করে। কোনও স্তরের সমস্ত বৈশিষ্ট্যকে (শেফফাইল বলুন) একক অংশের বৈশিষ্ট্যগুলিতে রূপান্তর করতে আমি মনে করি আপনি ওজিআর লাইব্রেরি ব্যবহার করতে পারেন। এই লিঙ্কে একবার দেখুন
আলেকজান্দ্রি নেটো

চিয়ার্স! সাহায্য .. !!
আখিল

আমি একটি স্তরটি নিতে চাই যা একটি মাল্টিপার্ট বহুভুজ হয় এবং এটি একক অংশে রূপান্তর করতে পারে - এটি কিউজিএসে করার জন্য পাইথন কোডটি খুঁজে পাচ্ছি না। আমি দেখতে পেয়েছি ভেক্টর - জ্যামিতি সরঞ্জাম - একক অংশগুলিতে মাল্টিপার্টসের অধীনে একটি কমান্ড রয়েছে। এটিই আমি চাই আমার কেবল পাইথন বাক্য গঠন প্রয়োজন
kflaw

অ্যালেক্সানড্রেনেটো দুর্দান্ত প্লাগইন!
DPSSpatial
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.