7 votos

Personalización del Panel de capas QGIS para mostrar capa CRS junto al nombre de la capa

¿Hay una manera de personalizar el Panel de capas para que la capa de CRS se muestra al lado del nombre de capa?

Contexto un poco más por qué esto sería manejable: estoy escribiendo algunas instrucciones para usar GIS (Q) en situaciones particulares. Algunas de las personas no están familiarizados con las proyecciones, pero la mayoría de ellos.

Normalmente usted compruebe el CRS abriendo las propiedades de capa, pero sería muy útil para aquellos personas 'desconocidas' para ver en que CRS una capa se carga en QGIS.

7voto

Mue Puntos 2469

Usted podría usar algo como esto una vez que las capas que se han cargado en QGIS:

for layer in QgsMapLayerRegistry.instance().mapLayers().values():   
    crs = layer.crs().authid()
    layer.setLayerName(layer.name() + ' (' + crs + ')')

Resultado:

Result


EDITAR:

En respuesta a tu comentario, usted puede automáticamente la actualización de un nombre de la capa cuando se agrega una nueva capa mediante la conexión de la itemAdded de señal a una función. Pegue el código siguiente en la Consola de Python y de la prueba mediante la adición de capas:

def updateLayerName():
    layer = qgis.utils.iface.legendInterface().layers()[0]
    crs = layer.crs().authid()
    layer.setLayerName(layer.name() + ' (' + crs + ')')

# Connect "itemAdded" event to "updateLayerName" function
legend = qgis.utils.iface.legendInterface()
legend.itemAdded.connect(updateLayerName)

Advertencia: la primera capa en la leyenda debe ser seleccionado o no capas de ser seleccionado (haciendo clic derecho en cualquier parte de la leyenda, como se describe en este post) cuando la adición de nuevas capas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X