পাইথন কমান্ডের মাধ্যমে কি কিউজিআইএস-এ কোনও প্রকল্পের সিআরএস সেট করা সম্ভব?
আমার ক্ষেত্রে ব্যবহারকারীর কিউজিআইএস খুলতে হবে, আমার লিখিত প্লাগইনটি শুরু করা উচিত এবং এই প্লাগইনটি স্থানিক ডেটা লোড করবে যার ইপসজি কোড 31467 (গাউস ক্রুয়েজার অঞ্চল 3) রয়েছে। দুর্ভাগ্যক্রমে কিউজিআইএস ডিফল্ট সিআরএস হ'ল ডাব্লুজিএস ৮৮ তাই আমি ইউনিট এবং স্কেল নিয়ে সমস্যায় পড়ি।
আমার প্রথম পদ্ধতিটি ছিল এই কোডটি ব্যবহার করা:
my_crs = core.QgsCoordinateReferenceSystem(31467, core.QgsCoordinateReferenceSystem.EpsgCrsId)
self.iface.mapCanvas().mapRenderer().setDestinationCrs(my_crs)
এই পরিবর্তনগুলি (ডেটা ইতিমধ্যে ভিজ্যুয়ালাইজড হওয়ার পরে) সিআরএসকে গাউস ক্রুয়েজার জোনে ৩. কমপক্ষে নীচের ডানদিকে কোণায় থাকা এসএসপি কোডটি পরিবর্তন হয়েছে has ইউনিটগুলি এখনও ডিগ্রীতে রয়েছে এবং স্কেল সম্পূর্ণ ভুল। গাউস ক্রুজারে 1: 5000 হ'ল ডাব্লু জিএস 84 এ 1: 528822376 (কিউজিআইএসে আমার ক্ষেত্রে)। প্রজেক্টগুলিতে ম্যানুয়ালি প্রকল্প সিআরএস সেট করার পরে প্রকল্পের সিআরগুলি আসলে জি কে 3 এবং স্কেল এবং ইউনিটগুলি সঠিক।
সুতরাং আমার প্রশ্ন হ'ল, আমি কি প্রকল্পটি সিআরএসের চেয়ে বেশি উপায়ে সেট করতে পারি? আমি ম্যানুয়াল উপায় এড়াতে চাই।
আমি নিম্নলিখিত কোড যুক্ত করে সমস্যার সমাধান করেছি:
qgis.utils.iface.mapCanvas().setMapUnits(0)
qgis.utils.iface.mapCanvas().refresh()
এটি ইউনিটগুলিকে মিটারে সেট করে এবং স্কেলটি স্বয়ংক্রিয়ভাবে আপডেট হয়। 0 টি মিটারের জন্য দাঁড়ায়, 1 টি পায়ে, 2 ডিগ্রি এবং 3 অজানা।