J'essaie d'écrire une macro python pour ArcGIS 10.2 qui automatisera le processus d'étiquetage des points dans une couche en fonction de différents types d'appartements. Par exemple, un style d'appartements aurait un carré bleu avec du texte en gras blanc comme une étiquette; un autre aurait un carré rose avec du texte en gras noir; un autre aurait un carré rouge avec un texte en gras blanc, etc.
Quelle expression ou fonction utiliseriez-vous dans arcpy pour modifier le style de ces étiquettes?
Actuellement, le script étiquette les appartements par un code de carte et change son nom dans la table des matières en appartements, comme il se doit.
Maintenant, je veux changer la police, le graphique et la taille des étiquettes pour créer une étiquette unique pour chacune, puis créer un bouton à appuyer et simplement automatiser le processus chaque fois que nous devons effectuer l'une de ces couches.
Existe-t-il un moyen de modifier les polices, les étiquettes et les graphiques à l'aide de scripts Python (ArcPy, IDLE, etc.)?
J'ai décidé de modifier ce post pour donner une description finale de ce que je vais faire ici, donc il n'y a pas de confusion. Essentiellement, les points sur la carte passeront de l'image ci-dessus à ceci:
J'ai essayé d'utiliser la lblClass.expression
fonction, mais le code que j'essaie d'utiliser ne fonctionne pas. Je pense que c'est probablement le pas dans la bonne direction. Ci-dessous se trouve du code que j'ai essayé d'utiliser juste pour obtenir le labelClass.expression pour changer les polices des étiquettes.
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])