QGIS에는 각 다각형에 임의의 색상 스타일을 적용한 다각형 레이어가 있습니다. 레이어 속성-> 스타일에서 분류 된 스타일을 선택한 다음 임의의 색상 램프를 생성했습니다. 레이어 테이블에 색상 열을 추가했습니다. 스타일에 할당 된 색상을 "# ff0000"형식으로 각 다각형의 색상 열에 자동으로 복사하는 방법이 있습니까?
궁극적으로 GeoJSON 레이어로 내 보내서 전단지 맵으로 가져오고 싶습니다. 색상 열은 전단지의 색상을 설정합니다.
QGIS에는 각 다각형에 임의의 색상 스타일을 적용한 다각형 레이어가 있습니다. 레이어 속성-> 스타일에서 분류 된 스타일을 선택한 다음 임의의 색상 램프를 생성했습니다. 레이어 테이블에 색상 열을 추가했습니다. 스타일에 할당 된 색상을 "# ff0000"형식으로 각 다각형의 색상 열에 자동으로 복사하는 방법이 있습니까?
궁극적으로 GeoJSON 레이어로 내 보내서 전단지 맵으로 가져오고 싶습니다. 색상 열은 전단지의 색상을 설정합니다.
답변:
이를 위해 PyQGIS를 사용할 수 있습니다 (하지만 최선의 솔루션인지 확실하지는 않습니다).
QGIS ToC에서 계층을 선택 (또는 활성화)하고 QGIS Python 콘솔을 열고이 코드 스 니펫을 복사하십시오.
prefix = "'"
layer = iface.activeLayer()
attr = layer.rendererV2().classAttribute()
attrColor = 'color' # Name of the field to store colors
fieldIndex = layer.dataProvider().fieldNameIndex(attrColor)
attrFeatMap = {}
for cat in layer.rendererV2().categories():
expr = "\""+attr+"\"="+prefix+unicode(cat.value())+prefix
for f in layer.getFeatures(QgsFeatureRequest(QgsExpression(expr))):
attrMap = { fieldIndex : cat.symbol().color().name()}
attrFeatMap[ f.id() ] = attrMap
layer.dataProvider().changeAttributeValues( attrFeatMap )
색상을 저장하는 필드를 '색상'이라고 가정합니다. 그것을 실행 한 후에, 나는 이것을 얻었다 :
문제가 발생하면 알려주십시오.
cat.symbol().color().name()
다음과 같이하십시오.str(cat.symbol().color().red()) +','+ str(cat.symbol().color().green()) +','+ str(cat.symbol().color().blue())