যদি আমি আপনাকে সঠিকভাবে পাই তবে উত্তরটি হ্যাঁ, কিউজিআইএস গতিশীল স্তরগুলির নামগুলি সমর্থন করে।
প্রকল্পটি প্রতিবার খোলা থাকলে আপনাকে একটি পাইথন ম্যাক্রো লিখতে হবে। এটি হবে কর্মপ্রবাহ:
নিম্নলিখিত পাইথন কোডটিতে যান QGIS->Project->Project Properties
এবং প্রতিস্থাপন করুন openProject()
:
def openProject():
import re, qgis
iface = qgis.utils.iface
layers = iface.mapCanvas().layers()
for lyr in layers:
# Get date from layer
it=lyr.getFeatures()
feat = next(it)
idx = lyr.fieldNameIndex('traffic_da')
currDate = feat.attributes()[idx]
# Set new layer name
name = lyr.name()
if re.search(' on \d{2,2}.\d{2,2}.\d{4,4}$', name):
name = name[:-14]
name = name + " on " + currDate
lyr.setLayerName( name )
নোট 1: আমি এটি শেফফাইলে পরীক্ষা করেছি, তাই যে ক্ষেত্রটি থেকে তারিখগুলি গ্রহণ traffic_da
করি তা শেফিলগুলি ফিল্ডের নামগুলিতে বেশি অক্ষর সমর্থন করে না। আপনার স্তরগুলিতে কাজ করতে কোডটিতে এটি সামঞ্জস্য করুন।
দ্রষ্টব্য 2: আপনার প্রকল্পের কনফিগারেশনের উপর নির্ভর করে আপনার পছন্দসই স্তরগুলিতে কাজ করতে আপনার বৈধতা কোড যুক্ত করা উচিত। উদাহরণস্বরূপ, আপনি যদি রাস্টার স্তরগুলিতে কোড চালনা করেন তবে ত্রুটিগুলি অবশ্যই উপস্থিত হবে। আপনার যদি এটির সাহায্যের প্রয়োজন হয় তবে একটি নতুন প্রশ্ন খুলুন, আমি আপনাকে সহায়তা করতে পারি।
আপনি আপনার প্রকল্পে ম্যাক্রোগুলি সক্ষম করেছেন তা নিশ্চিত করুন: Settings->Options->General->Enable macros: Always
প্রকল্পে আপনার স্তরগুলি লোড করুন।
আপনার প্রকল্প সংরক্ষণ করুন।
যতবার আপনি এই প্রকল্পটি থেকে এই প্রকল্পটি খুলবেন, আপনার স্তরের নামগুলি গতিশীল হবে traffic_date
, প্রতিটি স্তরের বৈশিষ্ট্য সারণীতে ক্ষেত্র থেকে তারিখটি নেওয়া হবে ।
আমি প্রথমবার এই প্রকল্পটি খোলার পরে, এইভাবে আমার স্তরটির নামগুলি গতিশীলভাবে উত্পন্ন হয়েছিল:
আমি মনে করি এটি আপনাকে শুরু করতে সহায়তা করতে পারে। আপনি যদি অ-সুস্পষ্ট সমস্যায় পড়েন তবে আমাকে বলুন।