QGIS besteci düzenine dinamik koordinat sistemi alanı eklemenin bir yolu olup olmadığını bilmek istiyorum.
Belge adı, dosya yolu vb.Gibi birçok öğe eklemek için bir ifade kullanabilirim, ancak koordinat sisteminin nasıl ekleneceğini anlayabiliyorum?
QGIS besteci düzenine dinamik koordinat sistemi alanı eklemenin bir yolu olup olmadığını bilmek istiyorum.
Belge adı, dosya yolu vb.Gibi birçok öğe eklemek için bir ifade kullanabilirim, ancak koordinat sisteminin nasıl ekleneceğini anlayabiliyorum?
Yanıtlar:
Bu cevap, QGIS 3.0'ın yayınlanmasından önce sağlanmış ve kabul edilmiştir.
Yetki Kimliğini (ör. " EPSG: 4326 ") almak için:
[% layer_property( 'your_layer_name_or_id', 'crs' ) %]CRS'nin metinsel açıklamasını almak istiyorsanız (örn. " WGS84 "):
Kod:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def get_crs(layer_name, feature, parent):
return QgsMapLayerRegistry.instance().mapLayersByName(layer_name)[0].crs().description()
get_crs( 'your_layer_name' )QGIS 3.x için cevap:
A) Belirli bir katmanın CRS adı için şunu kullanın:
Bu komut dosyasını özel işlev düzenleyicinize ekleyin:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def get_crs(layer_name, feature, parent):
return QgsProject.instance().mapLayersByName(layer_name)[0].crs().description()
ve sonra ifade editöründe crs adını
get_crs(@layer_name)
Veya layer_property( @layer_name, 'crs_description')@etrimaille tarafından önerilen ifadeyi kullanın
B) Projenizin CRS adı için (örneğin baskı düzeninizdeki projeksiyon) bunu kullanın:
Bu komut dosyasını özel işlev düzenleyicinize ekleyin:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def get_projectcrs(project_crs, feature, parent):
return QgsCoordinateReferenceSystem(project_crs).description()
ve ifade düzenleyicide crs adını şu şekilde alın:
get_projectcrs(@project_crs)
Elbette örneğin 'EPSG:4326'manuel olarak da yazabilir veya @project_crsEPSG kodu döndüren başka bir işlev kullanabilirsiniz . Örneğinget_projectcrs('EPSG:3006')
Notlar:
QGIS 3.x'teki değişiklikler hakkında daha fazla bilgi için https://qgis.org/api/api_break.html adresine de göz atın.