7 votos

¿Cómo cargar una capa raster en la parte superior de la TdC de QGIS?

El siguiente código inserta mi new_layer justo encima de la capa activa en el ToC de QGIS.

new_layer = iface.addRasterLayer(...) 

En cambio, me gustaría que mi new_layer que se insertará en la parte superior del TdC de QGIS.

¿Sabes cómo puedo hacerlo?

0 votos

2 votos

¿Es necesario crear grupos para subir una capa? He pensado en algo como: li = iface.legendInterface(); li.moveLayerIndex(new_layer, 0), tan sencillo como arrastrar manualmente hacia arriba una capa en la columna de la izquierda para ponerla en primer lugar. ¿Existe un método similar?

7voto

Elliott Maynard Puntos 11

Utilizando el nuevo árbol de capas (también conocido como leyenda o TdC) añadido por Martin Dobias desde QGIS v.2.4, puede cargar una capa en la parte superior de la TdC siguiendo estos pasos:

  1. Obtener una referencia del árbol de capas

    root = QgsProject.instance().layerTreeRoot()
  2. Crear el objeto de capa

    from PyQt4.QtCore import QFileInfo
    fileName = "/path/to/raster/file.tif"
    fileInfo = QFileInfo(fileName)
    baseName = fileInfo.baseName()
    mylayer = QgsRasterLayer(fileName, baseName)
  3. Añadir la capa al Registro de Capas de Mapa de QGIS

    QgsMapLayerRegistry.instance().addMapLayer(mylayer, False)
  4. Inserte la capa en la parte superior de la TdC (posición 0 )

    root.insertLayer(0, mylayer)

¡Eso es!

0voto

user31090 Puntos 1

No he encontrado la forma de hacerlo después de haber añadido las capas pero hay dos opciones alternativas:

  • Cree grupos, luego puede usar moveLayers para poner las capas en un grupo
  • Añade las capas en el orden correcto.

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