Trả lời cho QGIS 3.x:
Để biết giải pháp dễ dàng hơn mà không cần trăn, hãy xem bình luận của Gustry bên dưới
Thêm tập lệnh này vào chức năng tùy chỉnh của bạn:
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()
và sau đó lấy tên crs trong trình soạn thảo biểu thức với
get_crs(@layer_name)
Đối với tên CRS của dự án của bạn (ví dụ: chiếu trong bố cục in của bạn), hãy sử dụng:
Thêm tập lệnh này vào chức năng tùy chỉnh của bạn:
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()
và sau đó lấy tên crs trong trình soạn thảo biểu thức với:
get_projectcrs(@project_crs)
Tất nhiên, bạn cũng có thể nhập ví dụ 'EPSG:4326'
bằng tay hoặc sử dụng một chức năng khác @project_crs
để trả về mã EPSG.
Ghi chú:
Ngoài ra, hãy xem https://qgis.org/api/api_break.html để biết thêm thông tin về các thay đổi trong qgis 3.x