def _createLayer(self, node): type = node.attribute('type') if type == "vector": layer = QgsVectorLayer() elif type == "raster": layer = QgsRasterLayer() else: return None layer.readLayerXML(node) return layer.id(), layer
def _create_layer(self, node): layer_type = node.attribute('type') if layer_type == "vector": layer = QgsVectorLayer() elif layer_type == "raster": layer = QgsRasterLayer() else: return None layer.readLayerXML(node) return layer.id(), layer
def _parseLayers(self): with change_directory(self.project_root): # remove map layers self.layerRegistry.removeMapLayers( self.layerRegistry.mapLayers().keys() ) for layer in self._iterateOverTagByName('maplayer'): layer_type = self._getAttr(layer, 'type').value() if layer_type == 'vector': qgsLayer = QgsVectorLayer() elif layer_type == 'raster': qgsLayer = QgsRasterLayer() # read layer from XML if not(qgsLayer.readLayerXML(layer.toElement())): raise RuntimeError( 'Layer is not readable: {}'.format( layer.firstChildElement('id').text() ) ) # get layer transparency if layer_type == 'vector': self.LAYERS_DATA[qgsLayer.id()].update({ 'transparency': qgsLayer.layerTransparency() }) elif layer_type == 'raster': qgsRasterRender = qgsLayer.renderer() self.LAYERS_DATA[qgsLayer.id()].update({ 'transparency': ( int((1 - qgsRasterRender.opacity()) * 100) ) }) del qgsRasterRender # record layer type self.LAYERS_DATA[qgsLayer.id()].update({ 'type': layer_type }) # add layer to the QgsMapLayerRegistry if qgsLayer.isValid(): self.layerRegistry.addMapLayer(qgsLayer, False) LOG.debug('Loaded layer: %s', qgsLayer.id())
def loadqlr(self): path = QFileDialog.getOpenFileName(self.iface.mainWindow(), "Add QGIS Layer Definition", QDir.home().path(), "*.qlr") if not path: return with open(path, 'r') as f: content = f.read() doc = QDomDocument() doc.setContent(content) layernode = doc.elementsByTagName('maplayer').at(0) layerelm = layernode.toElement() layertype = layerelm.attribute("type") layer = None if layertype == "vector": layer = QgsVectorLayer() elif layertype == 'raster': layer = QgsRasterLayer() ok = layer.readLayerXML(layerelm) if ok: QgsMapLayerRegistry.instance().addMapLayer(layer)