Change color code X to transparent
This commit is contained in:
parent
5bdad0ea44
commit
19ed988760
1 changed files with 255 additions and 256 deletions
|
@ -288,13 +288,13 @@ class FeatureRenderer:
|
|||
|
||||
for layer in map_layers:
|
||||
if layer.name == input_layer:
|
||||
layers_to_render.append(layer.name)
|
||||
layers_to_render.append(layer)
|
||||
present = True
|
||||
break
|
||||
|
||||
if not present:
|
||||
added_layer = active_map.addDataFromPath(input_layer)
|
||||
layers_to_render.append(added_layer.name)
|
||||
layers_to_render.append(added_layer)
|
||||
|
||||
# Retrieve styles that are currently in the project
|
||||
project_styles = project.styles
|
||||
|
@ -345,7 +345,9 @@ class FeatureRenderer:
|
|||
custom_labels[row[0]] = f"{row[1]}{label_delimieter}{row[2]}"
|
||||
elif len(fields) == 2:
|
||||
if label_field_1 == primary_key_field:
|
||||
custom_labels[row[0]] = f"{row[0]}{label_delimieter}{row[1]}"
|
||||
custom_labels[row[0]] = (
|
||||
f"{row[0]}{label_delimieter}{row[1]}"
|
||||
)
|
||||
else:
|
||||
custom_labels[row[0]] = f"{row[1]}"
|
||||
elif len(fields) == 1:
|
||||
|
@ -378,8 +380,7 @@ class FeatureRenderer:
|
|||
outline_codes[str(row[0])] = row[1]
|
||||
|
||||
# Start rendering process
|
||||
for layer in map_layers:
|
||||
if layer.name in layers_to_render:
|
||||
for layer in layers_to_render:
|
||||
messages.AddMessage(f"Rendering layer: {layer.name}")
|
||||
|
||||
sym = layer.symbology
|
||||
|
@ -404,9 +405,7 @@ class FeatureRenderer:
|
|||
if symbol_code == "#":
|
||||
continue
|
||||
|
||||
code_components = get_code_components(
|
||||
symbol_code, leg_id
|
||||
)
|
||||
code_components = get_code_components(symbol_code, leg_id)
|
||||
symbol_key = code_components["symbol_key"]
|
||||
|
||||
if symbol_key:
|
||||
|
@ -443,10 +442,7 @@ class FeatureRenderer:
|
|||
if layer_shape_type == "Polygon":
|
||||
for group in cim_lyr.renderer.groups:
|
||||
for unique_value_class in group.classes:
|
||||
if (
|
||||
unique_value_class.values[0].fieldValues[0]
|
||||
!= "<Null>"
|
||||
):
|
||||
if unique_value_class.values[0].fieldValues[0] != "<Null>":
|
||||
leg_id = str(
|
||||
unique_value_class.values[0].fieldValues[0]
|
||||
)
|
||||
|
@ -469,18 +465,14 @@ class FeatureRenderer:
|
|||
# Set user defined outline color
|
||||
outline_code = outline_codes[leg_id]
|
||||
|
||||
if (
|
||||
not outline_code
|
||||
) or outline_code == "#":
|
||||
if (not outline_code) or outline_code == "#":
|
||||
outline_code = CODE_BLK
|
||||
|
||||
color_value = get_symbol_color(outline_code)
|
||||
|
||||
color = (
|
||||
arcpy.cim.CreateCIMObjectFromClassName(
|
||||
color = arcpy.cim.CreateCIMObjectFromClassName(
|
||||
"CIMCMYKColor", "V3"
|
||||
)
|
||||
)
|
||||
color.values = color_value["CMYK"]
|
||||
stroke_symbol_props[leg_id]["color"] = color
|
||||
else:
|
||||
|
@ -491,13 +483,13 @@ class FeatureRenderer:
|
|||
] = symbol_layer.color
|
||||
else:
|
||||
# Set default color
|
||||
color = arcpy.cim.CreateCIMObjectFromClassName(
|
||||
color = (
|
||||
arcpy.cim.CreateCIMObjectFromClassName(
|
||||
"CIMCMYKColor", "V3"
|
||||
)
|
||||
)
|
||||
color.values = DEFAULT_COLOR
|
||||
stroke_symbol_props[leg_id][
|
||||
"color"
|
||||
] = color
|
||||
stroke_symbol_props[leg_id]["color"] = color
|
||||
|
||||
# Get symbol layer line width
|
||||
if symbol_layer.width:
|
||||
|
@ -534,9 +526,7 @@ class FeatureRenderer:
|
|||
# Set outline width
|
||||
if draw_outlines:
|
||||
if outline_width:
|
||||
stroke_symbol_props[leg_id][
|
||||
"width"
|
||||
] = outline_width
|
||||
stroke_symbol_props[leg_id]["width"] = outline_width
|
||||
else:
|
||||
if not stroke_symbol_props[leg_id]["width"]:
|
||||
stroke_symbol_props[leg_id][
|
||||
|
@ -550,9 +540,7 @@ class FeatureRenderer:
|
|||
for unique_value_class in group.classes:
|
||||
|
||||
if unique_value_class.values[0].fieldValues[0] != "<Null>":
|
||||
leg_id = str(
|
||||
unique_value_class.values[0].fieldValues[0]
|
||||
)
|
||||
leg_id = str(unique_value_class.values[0].fieldValues[0])
|
||||
else:
|
||||
leg_id = None
|
||||
|
||||
|
@ -563,9 +551,7 @@ class FeatureRenderer:
|
|||
if symbol_code == "#":
|
||||
continue
|
||||
|
||||
code_components = get_code_components(
|
||||
symbol_code, leg_id
|
||||
)
|
||||
code_components = get_code_components(symbol_code, leg_id)
|
||||
color_value = code_components["color"]
|
||||
symbol_color_value = code_components["symbol_color"]
|
||||
|
||||
|
@ -592,12 +578,12 @@ class FeatureRenderer:
|
|||
symbol_layer,
|
||||
arcpy.cim.CIMSymbols.CIMSolidStroke,
|
||||
):
|
||||
symbol_layer.width = (
|
||||
stroke_symbol_props[leg_id]["width"]
|
||||
)
|
||||
symbol_layer.color = (
|
||||
stroke_symbol_props[leg_id]["color"]
|
||||
)
|
||||
symbol_layer.width = stroke_symbol_props[
|
||||
leg_id
|
||||
]["width"]
|
||||
symbol_layer.color = stroke_symbol_props[
|
||||
leg_id
|
||||
]["color"]
|
||||
|
||||
# Draw symbol background colors
|
||||
if not has_background_color and color_value:
|
||||
|
@ -677,7 +663,9 @@ def update_symbol_layer_colors(symbol_layer, symbol_color_value):
|
|||
if isinstance(symbol_layer, arcpy.cim.CIMSymbols.CIMSolidStroke):
|
||||
update_color(symbol_layer, symbol_color_value)
|
||||
|
||||
if isinstance(symbol_layer, arcpy.cim.CIMSymbols.CIMHatchFill) and hasattr(symbol_layer, "lineSymbol"):
|
||||
if isinstance(symbol_layer, arcpy.cim.CIMSymbols.CIMHatchFill) and hasattr(
|
||||
symbol_layer, "lineSymbol"
|
||||
):
|
||||
for sub_symbol_layer in symbol_layer.lineSymbol.symbolLayers:
|
||||
update_color(sub_symbol_layer, symbol_color_value)
|
||||
|
||||
|
@ -710,6 +698,7 @@ def get_symbol_code_for_shape(shape_type, symbol_codes):
|
|||
)
|
||||
|
||||
|
||||
# code has three components: fill color, symbol key, symbol color
|
||||
def get_code_components(code, leg_id):
|
||||
code_len = len(code)
|
||||
if code_len == 4:
|
||||
|
@ -749,6 +738,16 @@ def get_code_components(code, leg_id):
|
|||
|
||||
|
||||
def decode_color(color_string, leg_id):
|
||||
if color_string[3] == "X":
|
||||
return {
|
||||
"CMYK": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
],
|
||||
}
|
||||
else:
|
||||
return {
|
||||
"CMYK": [
|
||||
get_percentage_from_letter(color_string[0], leg_id),
|
||||
|
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue