Я пытаюсь написать макрос Python для ArcGIS 10.2, который автоматизирует процесс маркировки точек в слое на основе разных типов квартир. Например, один стиль квартир будет иметь синий квадрат с белым жирным шрифтом в качестве одной метки; у другого будет розовый квадрат с черным жирным шрифтом; у другого будет красный квадрат с белым жирным шрифтом и т. д.
Какое выражение или функцию вы бы использовали в arcpy, чтобы изменить стиль этих меток?
В настоящее время скрипт помечает квартиры кодом карты и меняет свое имя в оглавлении на квартиры, как и должно быть.
Теперь я хочу изменить шрифт, графику и размер меток, чтобы они выглядели уникально, а затем создать кнопку для нажатия и просто автоматизировать процесс в любое время, когда нам понадобится один из этих слоев.
Есть ли способ изменить шрифты, метки и графику с помощью сценариев Python (ArcPy, IDLE и т. Д.)?
Я решил отредактировать этот пост, чтобы дать окончательное описание того, что я собираюсь здесь, чтобы не было путаницы. По сути, точки на карте будут выглядеть не так, как на картинке выше:
Я пытался использовать lblClass.expression
функцию, однако код, который я пытаюсь использовать, не работает. Я думаю, что это, вероятно, шаг в правильном направлении. Ниже приведен код, который я пытался использовать, чтобы получить labelClass.expression для изменения шрифтов меток.
for lblClass in aptLayer.labelClasses:
lblClass.showClassLabels = True
def getLabel (Code, Type):
if Type == "MRR":
return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>"
elif Type == "TAX":
return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>"
elif Type == "MRT":
return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>"
elif Type == "GSS":
return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>"
elif Type == "TGS":
return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>"
else:
return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>"
lblClass.expression = getLabel( [Map_Code],[Type])