|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
Python - Unique Value RendererHi All, I’m trying to figure out how to setup a layer with a unique
value renderer using the python bindings. It seems like it should be
straightforward, but I’m obviously missing something, because it doesn’t
work. This is what I’ve got so far: layer =
QgCore.QgsVectorLayer(‘data/title.shp’,’Title Parcels’,’ogr’) layer.setScaleBasedVisibility(True) layer.setMinScale(minScale) layer.setMaxScale(maxScale) blackColor =
QtGui.QColor(0,0,0,255) yellowColor =
QtGui.QColor(255,255,190,255) greenColor =
QtGui.QColor(174,241,176,255) orangeColor =
QtGui.QColor(246,197,103,255) greyColor =
QtGui.QColor(178,178,178,255) rnd =
QgCore.QgsUniqueValueRenderer(QgCore.QGis.Polygon) prov =
layer.getDataProvider()
rnd.setClassificationField(prov.indexFromFieldName(‘Ownership’) sym0 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"0","0","Unknown")
sym0.setFillColor(greyColor)
sym0.setColor(blackColor) sym1 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"1","1","Private")
sym1.setFillColor(yellowColor)
sym1.setColor(blackColor) sym2 = QgCore.QgsSymbol(QgCore.QGis.Polygon,"2","2","County")
sym2.setFillColor(orangeColor)
sym2.setColor(blackColor) sym3 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"3","3","Crown")
sym3.setFillColor(greenColor)
sym3.setColor(blackColor)
rnd.insertValue("0",sym0)
rnd.insertValue("1",sym1)
rnd.insertValue("2",sym2)
rnd.insertValue("3",sym3)
layer.setRenderer(rnd) The layer itself is a polygon shapefile with a field called “Ownership”.
The field is an integer field with four different values, 0 to 3. When I
run my application, the Title Parcels layer is rendered with a black outline
and a white (or perhaps hollow) fill colour. How do I make the unique value renderer work properly? Thanks, Rob McCulley GIS Coordinator County of (780) 846-2244 _______________________________________________ Qgis-user mailing list Qgis-user@... http://lists.qgis.org/cgi-bin/mailman/listinfo/qgis-user |
|
|
Re: Python - Unique Value RendererI’ve managed to solve it. The
problem was rather simple. I was thinking it was a problem with the
classification, when it was really a problem with the symbols. All it took was
to add a sym0.setFillStyle(QtCore.Qt.SolidPattern) to each of my symbols. Rob From:
qgis-user-bounces@... [mailto:qgis-user-bounces@...] On Behalf Of Rob McCulley Hi All, I’m trying to figure out how to setup a layer with a
unique value renderer using the python bindings. It seems like it should
be straightforward, but I’m obviously missing something, because it
doesn’t work. This is what I’ve got so far: layer =
QgCore.QgsVectorLayer(‘data/title.shp’,’Title
Parcels’,’ogr’)
layer.setScaleBasedVisibility(True)
layer.setMinScale(minScale)
layer.setMaxScale(maxScale) blackColor =
QtGui.QColor(0,0,0,255) yellowColor =
QtGui.QColor(255,255,190,255) greenColor =
QtGui.QColor(174,241,176,255) orangeColor = QtGui.QColor(246,197,103,255) greyColor =
QtGui.QColor(178,178,178,255) rnd =
QgCore.QgsUniqueValueRenderer(QgCore.QGis.Polygon) prov =
layer.getDataProvider()
rnd.setClassificationField(prov.indexFromFieldName(‘Ownership’) sym0 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"0","0","Unknown")
sym0.setFillColor(greyColor)
sym0.setColor(blackColor) sym1 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"1","1","Private")
sym1.setFillColor(yellowColor)
sym1.setColor(blackColor) sym2 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"2","2","County")
sym2.setFillColor(orangeColor)
sym2.setColor(blackColor) sym3 =
QgCore.QgsSymbol(QgCore.QGis.Polygon,"3","3","Crown") sym3.setFillColor(greenColor)
sym3.setColor(blackColor)
rnd.insertValue("0",sym0)
rnd.insertValue("1",sym1)
rnd.insertValue("2",sym2)
rnd.insertValue("3",sym3)
layer.setRenderer(rnd) The layer itself is a polygon shapefile with a field called
“Ownership”. The field is an integer field with four
different values, 0 to 3. When I run my application, the Title Parcels
layer is rendered with a black outline and a white (or perhaps hollow) fill colour. How do I make the unique value renderer work properly? Thanks, Rob McCulley GIS Coordinator County of (780) 846-2244 _______________________________________________ Qgis-user mailing list Qgis-user@... http://lists.qgis.org/cgi-bin/mailman/listinfo/qgis-user |
| Free Forum Powered by Nabble | Forum Help |