QGISでベクトルデータを表示してみる その7
QgsSingleSymbolRendererでレイヤー全体に描画設定を適用してみましたが、属性を指定して個別に描画設定を試します。
QgsUniqueValueRenderer を使用します。
最初の方はやること同じ。
from PyQt4 import QtGui, QtCore l = qgis.utils.iface.activeLayer() sym = QgsSymbol(QGis.Polygon) col = QtGui.QColor(255,0,0) sym.setFillColor(col) sym.setFillStyle(QtCore.Qt.SolidPattern)
図形タイプを指定して、QgsUniqueValueRendererインスタンスを作成します。
sr = QgsUniqueValueRenderer(QGis.Polygon)
続いてどの属性項目をフィルターに使うか番号で指定します。
sr.setClassificationField(0)
属性と適用する描画設定を入れます。
sr.insertValue("01m0140m0090",sym)
何個か設定を入れてあげて、再描画すると指定した属性の図形に、指定した描画設定が反映されたことを確認出来ます。
sym2 = QgsSymbol(QGis.Polygon) sym2.setFillColor(col) sym2.setFillStyle(QtCore.Qt.Dense5Pattern) sr.insertValue("01m0110m0110",sym2) l.setRenderer(sr) qgis.utils.iface.mapCanvas().refresh()