Próbuję napisać makro Pythona dla ArcGIS 10.2, które zautomatyzuje proces oznaczania punktów w warstwie w oparciu o różne typy mieszkań. Na przykład jeden styl mieszkań miałby niebieski kwadrat z białym pogrubionym tekstem jako jedną etykietą; inny miałby różowy kwadrat z czarnym pogrubionym tekstem; inny miałby czerwony kwadrat z białym pogrubionym tekstem itp.
Jakiego wyrażenia lub funkcji użyłbyś w Arcpy, aby zmienić styl tych etykiet?
Obecnie skrypt etykietuje mieszkania kodem mapy i zmienia swoją nazwę w spisie treści na apartamenty, tak jak powinno.
Teraz chcę zmienić czcionkę, grafikę i rozmiar etykiet, aby wyglądały jak dla każdego, tworząc niepowtarzalną etykietę, a następnie uaktywnij przycisk i zautomatyzuj proces za każdym razem, gdy musimy wykonać jedną z tych warstw.
Czy istnieje sposób zmiany czcionek, etykiet i grafiki za pomocą skryptów Python (ArcPy, IDLE itp.)?
Postanowiłem zredagować ten post, aby podać ostateczny opis tego, co tu zamierzam, aby nie było zamieszania. Zasadniczo punkty na mapie przejdą od wyglądającego jak na powyższym obrazku do tego:
Próbowałem użyć tej lblClass.expression
funkcji, ale kod, którego próbuję użyć, nie działa. Myślę, że to prawdopodobnie krok we właściwym kierunku. Poniżej znajduje się kod, którego próbowałem użyć, aby uzyskać wyrażenie labelClass.expression w celu zmiany czcionek etykiet.
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])