pyQGIS를 이용한 벡터 데이터 처리 6 : 피쳐의 속성 및 좌표 편집

이미 저장되어 있는 피쳐의 속성과 좌표를 변경하는 코드를 살펴보겠습니다. 먼저 피쳐의 속성값을 변경하는 코드는 다음과 같습니다.

QgsProject.instance().removeAllMapLayers()

layer = QgsVectorLayer("D:/__Data__/세종특별자치시_36000/TL_SPRD_MANAGE.shp", "TL_SPRD_MANAGE", "ogr")
QgsProject.instance().addMapLayers([layer])
layer.selectByExpression('"RN_CD" = \'3251036\'')
idxField = layer.fields().indexOf('RN')

features = layer.selectedFeatures()
with edit(layer):
    for f in features:
        layer.changeAttributeValue(f.id(), idxField, "짱기로")

위의 코드는 먼저 RN_CD의 값이 3251036인 피쳐를 선택하고 선택된 피쳐의 RN 필드의 값을 “짱기로”로 변경하는 코드입니다.

다음은 위와 동일한 조건으로 피쳐를 선택하고 선택된 피쳐의 좌표를 편집하는 코드입니다.

QgsProject.instance().removeAllMapLayers()

layer = QgsVectorLayer("D:/__Data__/세종특별자치시_36000/TL_SPRD_MANAGE.shp", "TL_SPRD_MANAGE", "ogr")
QgsProject.instance().addMapLayers([layer])
layer.selectByExpression('"RN_CD" = \'2348142\'')

features = layer.selectedFeatures()
with edit(layer):
    for f in features:
        geom = QgsGeometry.fromWkt("MULTILINESTRING((968963 1820821, 993152 1819742, 993567 1844387))")
        layer.changeGeometry(f.id(),geom)

새롭게 정의할 도형의 좌표를 WKT 형식으로 지정하였습니다.

답글 남기기

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