QGIS API: レイヤーの削除

レイヤーの削除は、キャンバスにセットされているレイヤーセットから取り除き、
そのレイヤーをQgsMapLayerRegistry()からも削除します。
QgsMapLayerRegistry()からの削除を行わない場合は、単に非表示にするだけです。

以下のようにすると、指定したレイヤーを削除することができます。

  # self.layersはMapCanvasLayerオブジェクトのリスト
  # ここから、3番目のレイヤーを削除したい場合

  deleteLayer = self.layers[2].layer()
  del self.layers[2]
  QgsMapLayerRegistry().instace().removeMapLayer(deleteLayer.getLayerID())
  
  # 表示を更新
  
  self.canvas.setLayerSet(self.layers)
  self.canvas.refresh()
アーカイブ