Я намагаюся написати макрос python для ArcGIS 10.2, який автоматизує процес маркування точок у шарі на основі квартир різних типів. Наприклад, в одному стилі квартир був би синій квадрат з білим жирним текстом як одна мітка; інший мав би рожевий квадрат з чорним жирним текстом; інший мав би червоний квадрат із білим жирним текстом тощо.
Який вираз чи функцію ви б використовували в arcpy, щоб змінити стиль цих міток?
В даний час сценарій позначає квартири кодом карти і змінює його назву в TOC на квартири, як слід.
Тепер я хочу змінити шрифт, графіку та розмір міток, щоб виглядати, зробити унікальну мітку для кожного, а потім зробити кнопку для натискання та просто автоматизувати процес у будь-який час, коли нам доведеться зробити один із цих шарів.
Чи можна змінити шрифти, мітки та графіку за допомогою сценаріїв 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])