我正在尝试为ArcGIS 10.2编写一个python宏,该宏将根据不同类型的公寓自动标记图层中的点。例如,一种风格的公寓将有一个蓝色的正方形,上面带有白色的加粗文本作为标签。另一个将是带有黑色粗体的粉红色正方形;另一个将带有带有白色粗体文本的红色正方形,依此类推。
您将在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])