Saya mencoba untuk menulis makro python untuk ArcGIS 10.2 yang akan mengotomatiskan proses pelabelan poin dalam lapisan berdasarkan berbagai jenis apartemen. Misalnya, satu gaya apartemen akan memiliki kotak biru dengan teks tebal putih sebagai satu label; yang lain akan memiliki kotak merah muda dengan teks tebal hitam; yang lain akan memiliki kotak merah dengan teks tebal putih, dll.
Ekspresi atau fungsi apa yang akan Anda gunakan di arcpy untuk mengubah gaya label ini?
Saat ini, skrip memberi label apartemen dengan kode peta dan mengubah namanya di TOC menjadi apartemen, sebagaimana mestinya.
Sekarang saya ingin mengubah font, grafik, dan ukuran label agar terlihat membuat label unik untuk masing-masing, dan kemudian membuat tombol untuk menekan dan hanya mengotomatiskan proses kapan saja kita harus melakukan salah satu dari lapisan ini.
Apakah ada cara font, label, dan grafik dapat diubah dengan menggunakan skrip Python (ArcPy, IDLE, dll.)?
Saya memutuskan untuk mengedit posting ini untuk memberikan deskripsi akhir tentang apa yang akan saya lakukan di sini sehingga tidak ada kebingungan. Pada dasarnya, titik-titik pada peta akan berubah dari seperti gambar di atas menjadi ini:
Saya telah mencoba menggunakan lblClass.expression
fungsinya, namun kode yang saya coba gunakan tidak berfungsi. Saya pikir itu mungkin langkah ke arah yang benar. Di bawah ini adalah beberapa kode yang saya coba gunakan hanya untuk mendapatkan labelClass.expression untuk mengubah font label.
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])