Estou tentando escrever uma macro python para o ArcGIS 10.2 que automatizará o processo de rotular pontos em uma camada com base em diferentes tipos de apartamentos. Por exemplo, um estilo de apartamento teria um quadrado azul com texto em negrito branco como um rótulo; outro teria um quadrado rosa com texto em negrito preto; outro teria um quadrado vermelho com um texto em negrito branco etc.
Que expressão ou função você usaria no arcpy para alterar o estilo desses rótulos?
Atualmente, o script rotula os apartamentos por um código de mapa e altera seu nome no sumário para apartamentos, como deveria.
Agora, quero alterar a fonte, o gráfico e o tamanho dos rótulos para criar um rótulo exclusivo para cada um deles e, em seguida, pressionar um botão e simplesmente automatizar o processo sempre que precisarmos executar uma dessas camadas.
Existe alguma maneira de alterar as fontes, rótulos e gráficos com o uso de scripts Python (ArcPy, IDLE etc.)?
Decidi editar este post para dar uma descrição final do que vou fazer aqui, para que não haja confusão. Essencialmente, os pontos no mapa passarão da aparência da imagem acima para esta:
Eu tentei usar a lblClass.expression
função, no entanto, o código que estou tentando usar não funciona. Eu acho que é provavelmente o passo na direção certa. Abaixo está um código que tentei usar apenas para obter o labelClass.expression para alterar as fontes dos rótulos.
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])