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)
シンボルの設定なんかはベクタファイルと同じようにできます。
上記のコードは図形データを表示する部分だけです。
当然属性の取得も必要になるかと思われます。
この部分については別のページで紹介します。