Estoy tratando de escribir una macro de Python para ArcGIS 10.2 que automatizará el proceso de etiquetar puntos en una capa basada en diferentes tipos de apartamentos. Por ejemplo, un estilo de apartamentos tendría un cuadrado azul con texto en negrita blanco como una etiqueta; otro tendría un cuadrado rosa con texto negro en negrita; otro tendría un cuadrado rojo con un texto en negrita blanco, etc.
¿Qué expresión o función usarías en arcpy para alterar el estilo de estas etiquetas?
Actualmente, el script etiqueta los apartamentos por un código de mapa y cambia su nombre en la tabla de contenido a apartamentos, como debería.
Ahora quiero cambiar la fuente, el gráfico y el tamaño de las etiquetas para que se vean, crear una etiqueta única para cada una, y luego hacer un botón para presionar y simplemente automatizar el proceso cada vez que tengamos que hacer una de estas capas.
¿Hay alguna forma de que las fuentes, las etiquetas y los gráficos se puedan cambiar con el uso de secuencias de comandos de Python (ArcPy, IDLE, etc.)?
Decidí editar esta publicación para dar una descripción final de lo que voy a hacer aquí para que no haya confusión. Esencialmente, los puntos en el mapa pasarán de verse como la imagen de arriba a esto:
He intentado usar la lblClass.expression
función, sin embargo, el código que estoy tratando de usar no funciona. Me imagino que ese es probablemente el paso en la dirección correcta. A continuación se muestra un código que he tratado de usar solo para obtener labelClass.expression para cambiar las fuentes de las etiquetas.
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])