pyQGIS를 이용한 벡터 데이터 처리 2 : 레이어 추가 및 삭제

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()

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다