SHP 파일 등과 같은 벡터 데이터를 레이어로 추가하는 코드는 다음과 같습니다.
layer = QgsVectorLayer("D:/__Data__/세종특별자치시_36000/TL_SPRD_MANAGE.shp", "TL_SPRD_MANAGE") QgsProject.instance().addMapLayers([layer])
실행 결과는 다음과 같습니다. 레이어를 추가할 때 추가된 레이어가 바로 지도뷰에 꽉 차게 표시하기 위한 코드는 다음과 같습니다.
canvas = iface.mapCanvas() extent = layer.extent() canvas.setExtent(extent)
추가한 레이어에 대한 객체를 얻는 코드는 다음과 같습니다.
layers = QgsProject.instance().mapLayersByName("TL_SPRD_MANAGE") print(len(layers), layers[0].name())
레이어의 이름으로 객체를 얻는 것인데, 레이어의 이름은 중복될 수 있으므로 동일한 이름이라도 여러개의 레이어 객체가 참조 될 수 있습니다.
추가한 레이어를 삭제하는 코드는 다음과 같습니다.
layers = QgsProject.instance().mapLayersByName("TL_SPRD_MANAGE") QgsProject.instance().removeMapLayer(layers[0].id())
레이어의 이름은 중복될 수 있으므로 실제 삭제 시에는 레이어의 ID 값을 지정하여 삭제해야 합니다.
추가된 모든 레이어를 삭제하는 코드는 다음과 같습니다.
QgsProject.instance().removeAllMapLayers()