Código fuente para src.layer_manager

# -*- coding: utf-8 -*-
"""Este módulo propociona puntos de acceso al registro de capas de QGIS
(QgsMapLayerRegistry.instance()), para hacer el código más legible."""
from PyQt4.QtGui import QColor
from qgis.core import ( QgsMapLayerRegistry,
                        QgsVectorLayer,
                        QgsRasterLayer)

[documentos]def get_layer(layer_name): """ Busca una capa por nombre en el registro de capas de qgis. :param layer_name: Nombre de la capa a buscar. :type layer_name: str :returns: La primera capa cuyo nombre coincida con layer_name, en caso de que no exista se retorna None. :rtype: QgsMapLayer """ try: return QgsMapLayerRegistry.instance().mapLayersByName(layer_name)[0] except IndexError: return None
[documentos]def get_all_layers(layer_name): """ Retorna todas la capas con el nombre layer_name que estan en el registro de capas de qgis. :param layer_name: Nombre de la capa a buscar. :type layer_name: str :returns: La primera capa cuyo nombre coincida con layer_name, en caso de que no exista se retorna None. :rtype: Lista de QgsMapLayer """ try: return QgsMapLayerRegistry.instance().mapLayersByName(layer_name) except IndexError: return []
[documentos]def remove_layers(layers): """ Elimina capas del registro de capas de qgis. :param layers: Capas que se van a eliminar. :type layer_name: Lista QgsMapLayers """ for layer in layers: QgsMapLayerRegistry.instance().removeMapLayer(layer)
[documentos]def add_layers(layers): """ Agrega capas al registro de capas de qgis. :param layers: Capas que se van a agregar. :type layer_name: Lista QgsMapLayers """ for layer in layers: QgsMapLayerRegistry.instance().addMapLayer(layer)
[documentos]def load_raster_layer(path, name): """Carga una capa rasterizada. :param path: Ruta de la capa que se va a cargar. :type path: str :param name: Nombre de la capa que se va a cargar, este nombre será el identificador de la capa. :returns: Capa rasterizada en caso de que sea valida, de lo contrario se retorna None. :rtype: QgsRasterLayer """ rlayer = QgsRasterLayer(path, name) if not rlayer.isValid(): return None return rlayer
[documentos]def load_vector_layer(path, name, color = (0, 0 , 0)): """Carga una capa vectorizada. :param path: Ruta de la capa que se va a cargar. :type path: str :param name: Nombre de la capa que se va a cargar, este nombre será el identificador de la capa. :param color: Color que se la va a asignar a la capa :type color: Tupla de 3 elementos r, g, b :returns: Capa vectorizada en caso de que sea valida, de lo contrario se retorna None :rtype: QgsVectorLayer """ layer = QgsVectorLayer(path, name, 'ogr') if not layer.isValid(): return None # Cambiar el color del layer r, g, b = color symbol_layer = layer.rendererV2().symbols()[0].symbolLayer(0) symbol_layer.setColor(QColor(r, g, b)) return layer