Skip to content

Commit

Permalink
[processing] added algs to set style of layer
Browse files Browse the repository at this point in the history
  • Loading branch information
volaya committed Jun 16, 2014
1 parent 68e2def commit acc6271
Show file tree
Hide file tree
Showing 3 changed files with 134 additions and 1 deletion.
5 changes: 4 additions & 1 deletion python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py
Expand Up @@ -99,6 +99,8 @@
from PointsToPaths import PointsToPaths
from PostGISExecuteSQL import PostGISExecuteSQL
from ImportIntoPostGIS import ImportIntoPostGIS
from SetVectorStyle import SetVectorStyle
from SetRasterStyle import SetRasterStyle
# from VectorLayerHistogram import VectorLayerHistogram
# from VectorLayerScatterplot import VectorLayerScatterplot
# from MeanAndStdDevPlot import MeanAndStdDevPlot
Expand Down Expand Up @@ -154,7 +156,8 @@ def __init__(self):
RandomPointsLayer(), RandomPointsPolygonsFixed(),
RandomPointsPolygonsVariable(),
RandomPointsAlongLines(), PointsToPaths(),
PostGISExecuteSQL(), ImportIntoPostGIS()
PostGISExecuteSQL(), ImportIntoPostGIS(),
SetVectorStyle(), SetRasterStyle(),
# ------ raster ------
# CreateConstantRaster(),
# ------ graphics ------
Expand Down
67 changes: 67 additions & 0 deletions python/plugins/processing/algs/qgis/SetRasterStyle.py
@@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-

"""
***************************************************************************
SelectByLocation.py
---------------------
Date : August 2012
Copyright : (C) 2012 by Victor Olaya
Email : volayaf at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""

__author__ = 'Victor Olaya'
__date__ = 'August 2012'
__copyright__ = '(C) 2012, Victor Olaya'

# This will get replaced with a git SHA1 when you do a git archive

__revision__ = '$Format:%H$'

from PyQt4.QtCore import *
from PyQt4.QtXml import *
from qgis.core import *
from processing.core.GeoAlgorithm import GeoAlgorithm
from processing.parameters.ParameterFile import ParameterFile
from processing.parameters.ParameterRaster import ParameterRaster
from processing.outputs.OutputRaster import OutputRaster
from processing.tools import dataobjects
from qgis.utils import iface

class SetRasterStyle(GeoAlgorithm):

INPUT = 'INPUT'
STYLE = 'STYLE'
OUTPUT = 'OUTPUT'


def defineCharacteristics(self):
self.allowOnlyOpenedLayers = True
self.name = 'Set style for raster layer'
self.group = 'Raster general tools'
self.addParameter(ParameterRaster(self.INPUT, 'Vector layer'))
self.addParameter(ParameterFile(self.STYLE,
'Style file', False, False, 'qml'))
self.addOutput(OutputRaster(self.OUTPUT, 'Styled layer', True))

def processAlgorithm(self, progress):
filename = self.getParameterValue(self.INPUT)
layer = dataobjects.getObjectFromUri(filename)

style = self.getParameterValue(self.STYLE)
with open(style) as f:
xml = "".join(f.readlines())
d = QDomDocument();
d.setContent(xml);
n = d.firstChild();
layer.readSymbology(n, '')
self.setOutputValue(self.OUTPUT, filename)
iface.mapCanvas().refresh()
iface.legendInterface().refreshLayerSymbology(layer)
63 changes: 63 additions & 0 deletions python/plugins/processing/algs/qgis/SetVectorStyle.py
@@ -0,0 +1,63 @@
# -*- coding: utf-8 -*-

"""
***************************************************************************
SelectByLocation.py
---------------------
Date : August 2012
Copyright : (C) 2012 by Victor Olaya
Email : volayaf at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""

__author__ = 'Victor Olaya'
__date__ = 'August 2012'
__copyright__ = '(C) 2012, Victor Olaya'

# This will get replaced with a git SHA1 when you do a git archive

__revision__ = '$Format:%H$'

from PyQt4.QtCore import *
from qgis.core import *
from processing.core.GeoAlgorithm import GeoAlgorithm
from processing.parameters.ParameterVector import ParameterVector
from processing.outputs.OutputVector import OutputVector
from processing.parameters.ParameterFile import ParameterFile
from processing.tools import dataobjects
from qgis.utils import iface

class SetVectorStyle(GeoAlgorithm):

INPUT = 'INPUT'
STYLE = 'STYLE'
OUTPUT = 'OUTPUT'


def defineCharacteristics(self):
self.allowOnlyOpenedLayers = True
self.name = 'Set style for vector layer'
self.group = 'Vector general tools'
self.addParameter(ParameterVector(self.INPUT, 'Vector layer',
[ParameterVector.VECTOR_TYPE_ANY]))
self.addParameter(ParameterFile(self.STYLE,
'Style file', False, False, 'qml'))
self.addOutput(OutputVector(self.OUTPUT, 'Styled layer', True))

def processAlgorithm(self, progress):
filename = self.getParameterValue(self.INPUT)
layer = dataobjects.getObjectFromUri(filename)

style = self.getParameterValue(self.STYLE)
layer.loadNamedStyle(style)

self.setOutputValue(self.OUTPUT, filename)
iface.mapCanvas().refresh()
iface.legendInterface().refreshLayerSymbology(layer)

0 comments on commit acc6271

Please sign in to comment.