QGISでベクトルデータを表示してみる その3
追加と削除してみます。
QgsGeometry.fromPolygonに渡す引数のリストが2重になっていますが、最初のリストがポリゴンの外側、2番目以降のリストが内側のポリゴンになります。穴のあいたポリゴンを作る時は引数を複数渡します。
l = qgis.utils.iface.activeLayer() l.startEditing() p = l.dataProvider() fet = QgsFeature() fet.setGeometry(QgsGeometry.fromPolygon([ [QgsPoint(-120000,-300000), QgsPoint(-100000,-300000),QgsPoint(-100000,-280000),QgsPoint(-120000,-280000)] ])) fet.setAttributeMap({0 : "add!"}) p.addFeatures([fet]) l.commitChanges()
属性テーブルを見ても1番最後に追加されていることが分かります。
削除するときはIDを指定します。
p.deleteFeatures([651])
後はfeatureのGeometryを編集出来れば、最低限一通りの操作が出来そうですね。