আমি যখন পোস্টজিআইএস থেকে একগুচ্ছ স্তর কিউজিআইএস এ লোড করি তখন তারা বিপরীত বর্ণানুক্রমিক ক্রমে লোড হয় বলে মনে হয়।
অ্যাড লেয়ার অ্যাকশন পোস্টজিআইএস স্তরগুলি যুক্ত করার সময় এটি একটি বাগ (এমনকি মাস্টার শাখায়ও) হিসাবে উপস্থিত হয় ... এবং কিউজিআইএস বাগ ট্র্যাকারটিতে রিপোর্ট করা উচিত । তবে, আপনি যদি PostGIS স্তরগুলি লোড করতে নতুন ব্রাউজার ব্যবহার করেন তবে সেগুলি বিপরীত হবে না। নতুন ডিবি ম্যানেজার একাধিক টেবিল নির্বাচন করার অনুমতি দেয় না, সুতরাং সেখানে কোনও সমস্যা নেই (একাধিক নির্বাচনের অভাব ব্যতীত)।
এমন কি এমন কোনও সরঞ্জাম বা প্লাগইন রয়েছে যা আপনাকে কিউজিআইএস টসিকে দ্রুত আলাদাভাবে সাজানোর অনুমতি দেয়? উদাহরণস্বরূপ, আমি যে কয়েকটি বিকল্প চাইবে তা ভাবতে পারি:
2) স্তরগুলি স্তর অনুসারে বাছাই করুন (বর্ণানুক্রমিক, বিপরীত বর্ণানুক্রমিক)
এটি বর্তমানে কিউজলিজেন্ডের ( কিউটি ট্রিউজেড ) বেস ক্লাসের দেশীয় কলাম বা আইটেম বাছাই করে করা যেতে পারে । এটি সমস্ত আইটিইএমএস, উভয় স্তর এবং গ্রুপকে একত্রে বাছাই করবে, শীর্ষ স্তরের স্তরগুলির উপরে বা নীচে গোষ্ঠীযুক্ত নয়। এটি গ্রুপের মধ্যেও বাছাই করবে। এই ধরণের বাছাইয়ের কোনও পূর্বাবস্থা নেই।
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.utils import iface
mw = iface.mainWindow()
lgd = mw.findChild(QTreeWidget, "theMapLegend") # get ref to object by type/objectName
lgd.sortItems(0, Qt.AscendingOrder) # sort first column (Qt.DescendingOrder to reverse)
ক্যাভ্যাট : যদি প্রধান কিংবদন্তিও স্তর রেন্ডার অর্ডার (ডিফল্ট) নিয়ন্ত্রণ করে তবে এটি ঠিক আছে। অর্ডার রেন্ডার নিয়ন্ত্রণ করতে যদি লেয়ার অর্ডার ডক উইজেটটি আলাদাভাবে ব্যবহার করা হয়, তবে কিংবদন্তিতে সাজানোর ক্রম সম্মানিত হয় না এবং নিম্নলিখিত ক্রম ক্রিয়াকলাপটি অনাকাঙ্ক্ষিত ফলাফলের দিকে নিয়ে যেতে পারে (উপরে থেকে অব্যাহত):
lo = mw.findChild(QListWidget, "theMapLayerOrder")
lo.sortItems(Qt.AscendingOrder)
এই কোড থেকে আপনি দেখতে পারেন যে লেয়ার অর্ডার তালিকাটি একটি QListWidget , একটি QTreeWidget নয়, যার অর্থ বাছাইয়ের ফলে কোনও গ্রুপিং বিবেচনায় নেওয়া হবে না। সমস্ত স্তরগুলি সমতল তালিকায় উপস্থাপিত হয়, যেন তারা সমস্ত শীর্ষ স্তরের। সুতরাং, বর্তমানে গ্রুপগুলিতে নেস্টেড যে কোনও স্তর শীর্ষ-স্তরের স্তরগুলির নীচে উপরে বাছাই করতে পারে, যদি আপনি QListWidget এ উপরের বাছাই কোড প্রয়োগ করেন।
1) জ্যামিতির দ্বারা স্তরগুলি বাছাই করুন, যেখানে পয়েন্টগুলি শীর্ষে রয়েছে, তারপরে লাইনগুলি, পোলিগুলি এবং রাস্টারগুলি।
3) জ্যামিতির দ্বারা প্রথমে বাছাই করুন, তারপরে নাম অনুসারে। এটি # 1 এবং # 2 এর সংমিশ্রণ হবে। পয়েন্ট স্তরগুলি শীর্ষে বাছাই করা হয় (# 1 এর সমান) তবে পয়েন্ট স্তরগুলি বর্ণানুক্রমিকভাবে সাজানো হয় (পয়েন্ট-এ, পয়েন্ট-বি, পয়েন্ট-সি, ইত্যাদি)।
বর্তমানে পাইথন ব্যবহার করে কিউজএলজেন্ডকে সামলানোর জন্য সীমিত কার্যকারিতা রয়েছে। নেই QgsLegendInterface কিন্তু এই সব গুডিজ যে উপস্থিত নেই QgsLegend , QgsLegendLayer , উত্তরাধিকারসূত্রে QgsLegendItem , অথবা কোন অন্য ক্লাসের QgsLegend সঙ্গে যুক্ত।
যদিও, আপনি যদি একটি পরিষ্কার প্রকল্প দিয়ে শুরু করেন, এবং গোষ্ঠীগুলি ব্যবহার করতে কিছু মনে করেন না, তবে নিম্নলিখিতটি বর্তমানে সম্ভব (প্রাথমিক কোড ব্লক থেকে চালিয়ে যাওয়া):
li = iface.legendInterface()
li.addGroup('A_Points')
li.addGroup('B_Lines')
li.addGroup('C_Polygons')
li.addGroup('D_Rasters')
for l in li.layers():
if l.type() == QgsMapLayer.VectorLayer:
if l.geometryType() == QGis.Point:
li.moveLayer(l, 0)
elif l.geometryType() == QGis.Line:
li.moveLayer(l, 1)
elif l.geometryType() == QGis.Polygon:
li.moveLayer(l, 2)
elif l.type() == QgsMapLayer.RasterLayer:
li.moveLayer(l, 3)
lgd.sortItems(0, Qt.AscendingOrder)
( ধারনা অন্য কোন গ্রুপ বিদ্যমান। ) এই কনসোল থেকে চালানো হবে (অথবা ScriptRunner স্ক্রিপ্ট, বা প্লাগইন, বা মাস্টার নতুন কনসোল মধ্যে লোড) পর স্তর যোগ করা হয়েছে। এটি বাছাইযোগ্য নাম সহ গোষ্ঠী তৈরি করবে, গোষ্ঠীগুলি সংশোধন করার জন্য স্তরগুলি যুক্ত করবে, তারপরে পুরো জিনিসটিকে বাছাই করবে। উপরের মত একই ক্যাভিয়েট প্রযোজ্য।
ইতিমধ্যে লোডযুক্ত স্তর এবং গোষ্ঠীগুলির সাথে বিদ্যমান প্রকল্পে নতুন স্তর যুক্ত করার সময় আরও শক্তিশালী সমাধানের জন্য সঠিক গোষ্ঠী সূচকগুলির জন্য আরও চেকের প্রয়োজন হবে।