ArcGIS 10.2 için farklı daire tiplerine dayanan bir katmandaki noktaları etiketleme işlemini otomatikleştirecek bir python makrosu yazmaya çalışıyorum. Örneğin, bir daire tarzı, bir etiket olarak beyaz kalın metinli mavi bir kareye sahip olacaktır; bir diğeri siyah kalın metinli pembe bir kareye sahip olacaktı; diğerinde beyaz kalın metinli kırmızı bir kare vb. olurdu.
Bu etiketlerin stilini değiştirmek için arcpy'de hangi ifadeyi veya işlevi kullanırsınız?
Şu anda, komut dosyası daireleri bir harita koduyla etiketlemekte ve TOK'daki adını gerektiği gibi dairelere değiştirmektedir.
Şimdi, her biri için benzersiz bir etiket yapmak için etiketlerin yazı tipini, grafiğini ve boyutunu değiştirmek ve daha sonra bu katmanlardan birini yapmak zorunda kaldığımızda her zaman düğmeye basmak ve işlemi otomatikleştirmek için bir düğme yapmak istiyorum.
Yazı tiplerinin, etiketlerin ve grafiklerin Python komut dosyası (ArcPy, IDLE, vb.) Kullanılarak değiştirilmesinin herhangi bir yolu var mı?
Bu yazıyı düzenlemeye karar verdim, burada ne yapacağım hakkında son bir açıklama yapalım, böylece karışıklık yok. Esasen, haritadaki noktalar yukarıdaki resme benzemekten şuraya gidecek:
Kullanmaya çalıştığım lblClass.expression
kod çalışmıyor ancak işlevini kullanmayı denedim . Muhtemelen doğru yönde atılan adım budur. Aşağıda, etiketlerin yazı tiplerini değiştirmek için labelClass.expression ifadesini almak için kullanmaya çalıştığım bazı kodlar bulunmaktadır.
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])