PostGISデータベースからデータを読み込み場合も、
ベクタデータファイルと同じようにQgsVectorLayerクラスを使いますが、
当然いくつか違いがあります。
下記のコードサンプルで、太字の部分がベクタファイルと異なる部分です。
def addPostGISLayer(self):
uri = QgsDataSourceURI()
uri.setConnection("ホスト名", "ポート番号",
"データベース名", "ユーザ名", "パスワード")
uri.setDataSource("スキーマ名", "テーブル名", "the_geom", "")
layer = QgsVectorLayer(uri.uri(), "points", "postgres")
if not layer.isValid():
return
QgsMapLayerRegistry.instance().addMapLayer(layer);
cl = QgsMapCanvasLayer(layer)
self.layers.append(cl)
self.canvas.setLayerSet(self.layers)
シンボルの設定なんかはベクタファイルと同じようにできます。
上記のコードは図形データを表示する部分だけです。
当然属性の取得も必要になるかと思われます。
この部分については別のページで紹介します。