Ответ для QGIS 3.x:
Для более простого решения без Python см. Комментарий от gustry ниже
Добавьте этот скрипт в ваш пользовательский редактор функций:
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()
а затем получить имя crs в редакторе выражений с
get_crs(@layer_name)
Для имени CRS вашего проекта (например, проекция в макете печати) используйте это:
Добавьте этот скрипт в ваш пользовательский редактор функций:
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()
и затем получите имя crs в редакторе выражений с помощью:
get_projectcrs(@project_crs)
Конечно, вы также можете ввести, например, 'EPSG:4326'
вручную или использовать другую функцию, @project_crs
которая не возвращает EPSG-код.
Ноты:
Также взгляните на https://qgis.org/api/api_break.html для получения дополнительной информации об изменениях в qgis 3.x