QGIS'teki bir projenin proje CRS'sini bir Python komutu ile ayarlamak mümkün müdür?
Benim durumumda kullanıcı QGIS'i açmalı, yazılı eklentimi başlatmalı ve bu eklenti, epsg kodu 31467 (Gauss Krueger Zone 3) olan uzamsal verileri yükleyecektir. Ne yazık ki QGIS varsayılan CRS WGS84 olduğunu, bu yüzden birimler ve ölçek ile sorun yaşıyorum.
İlk yaklaşımım bu kodu kullanmaktı:
my_crs = core.QgsCoordinateReferenceSystem(31467, core.QgsCoordinateReferenceSystem.EpsgCrsId)
self.iface.mapCanvas().mapRenderer().setDestinationCrs(my_crs)
Bu değişiklik (veriler zaten görselleştirildikten sonra) CRS'yi Gauss Krueger Zone 3 olarak değiştirir. En azından sağ alt köşedeki espg kodu değişti. Birimler hala derece cinsindendir ve ölçek tamamen yanlıştır. Gauss Krüger'deki 1: 5000, WGS 84'de (benim durumumda QGIS) 1: 528822376'dır. Proje CRS'yi özelliklerde manuel olarak ayarladıktan sonra proje crs gerçekten GK3 ve ölçek ve birimler haklıdır.
Benim sorum şu, CRS projesini yaptığımdan başka bir şekilde ayarlayabilir miyim? Manuel yoldan kaçınmak istiyorum.
Aşağıdaki kodu ekleyerek sorunu çözdüm:
qgis.utils.iface.mapCanvas().setMapUnits(0)
qgis.utils.iface.mapCanvas().refresh()
Bu birimleri ölçecek şekilde ayarlar ve ölçek otomatik olarak güncellenir. 0 metre, 1 ayak, 2 derece ve 3 bilinmeyen anlamına gelir.