Risposta per QGIS 3.x:
Per una soluzione più semplice senza Python vedi il commento di Gustry di seguito
Aggiungi questo script al tuo funzione personalizzata:
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()
e quindi ottenere il nome crs nell'editor delle espressioni con
get_crs(@layer_name)
Per il nome CRS del tuo progetto (ad esempio la proiezione nel layout di stampa) usa questo:
Aggiungi questo script al tuo funzione personalizzata:
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()
e quindi ottenere il nome crs nell'editor delle espressioni con:
get_projectcrs(@project_crs)
Naturalmente è anche possibile digitare ad esempio 'EPSG:4326'
manualmente o utilizzare un'altra funzione oltre alla @project_crs
quale restituisce un codice EPSG.
Appunti:
Dai anche un'occhiata a https://qgis.org/api/api_break.html per ulteriori informazioni sulle modifiche a qgis 3.x