क्या पायथन कमांड के माध्यम से QGIS में प्रोजेक्ट का CRS सेट करना संभव है?
मेरे मामले में उपयोगकर्ता को QGIS खोलना चाहिए, मेरा लिखित प्लगइन शुरू करना चाहिए और यह प्लगइन स्थानिक डेटा को लोड करेगा जिसमें एप्सग कोड 31467 (गॉस क्रुएजर ज़ोन 3) है। दुर्भाग्य से QGIS डिफ़ॉल्ट CRS WGS84 है, इसलिए मैं इकाइयों और पैमाने पर परेशानी में पड़ जाता हूं।
मेरा पहला दृष्टिकोण इस कोड का उपयोग करना था:
my_crs = core.QgsCoordinateReferenceSystem(31467, core.QgsCoordinateReferenceSystem.EpsgCrsId)
self.iface.mapCanvas().mapRenderer().setDestinationCrs(my_crs)
यह परिवर्तन (डेटा पहले से ही कल्पना के बाद) गॉस क्रुजर ज़ोन के लिए सीआरएस 3. निचले दाएं कोने में कम से कम एस्पग कोड बदल गया है। इकाइयां अभी भी डिग्री में हैं और पैमाने पूरी तरह से गलत है। 1: 5000 गॉस क्रुगर में 1: 528822376 WGS 84 में (QGIS में मेरे मामले में)। गुणों में मैन्युअल रूप से परियोजना सीआरएस स्थापित करने के बाद परियोजना सीआरएस वास्तव में जीके 3 है और पैमाने और इकाइयां सही हैं।
तो मेरा सवाल यह है कि क्या मैंने प्रोजेक्ट सीआरएस को दूसरे तरीके से सेट किया है, जैसा मैंने किया है? मैं मैनुअल तरीके से बचना चाहता हूं।
मैंने निम्नलिखित कोड जोड़कर समस्या का हल किया:
qgis.utils.iface.mapCanvas().setMapUnits(0)
qgis.utils.iface.mapCanvas().refresh()
यह इकाइयों को मीटर में सेट करता है और स्केल अपने आप अपडेट हो जाता है। 0 मीटर के लिए खड़ा है, 1 पैर के लिए है, 2 डिग्री के लिए है और 3 अज्ञात के लिए है।