waigani's diary

QGISを中心にFOSS4Gをいじくる

QGISでベクトルデータを表示してみる その8

ラベルを付けてみます。
単純にラベルをONにするのは簡単。レイヤーを持ってきて、ラベル表示のフラグをたててあげるだけです。

l = qgis.utils.iface.activeLayer()
l.enableLabels(True)
qgis.utils.iface.mapCanvas().refresh()

"ラベル"と表示されます。

レイヤーのプロパティを開いてみると、"デフォルトラベル"の項目に"ラベル"と入っています。これが表示されている状態です。


QgsLabelクラスQgsLabelAttributesクラスを使って他の項目を設定できます。

featureのどの属性値を表示するかを指定するには、setLabelField()を使えます。最初の引数が設定する項目を、2番目の引数が設定する値になります。
下記では、4番目(0から数えるので)の属性を表示するように設定しています。

l.label().setLabelField(0,3)

こんな属性です。

属性値が表示されます。


サイズとかBOLDとか設定出来ます。

l.label().layerAttributes().setBold(True)
l.label().layerAttributes().setSize(16.0,1)


いまいち使いこなしてないような気がします。
ソースみながらではないと進まなくなってきました。
少し開発環境の整理もしなくては。