Sto cercando di scrivere una macro Python per ArcGIS 10.2 che automatizzerà il processo di etichettatura dei punti in un livello basato su diversi tipi di appartamenti. Ad esempio, uno stile di appartamenti avrebbe un quadrato blu con testo in grassetto bianco come un'etichetta; un altro avrebbe un quadrato rosa con testo in grassetto nero; un altro avrebbe un quadrato rosso con un testo in grassetto bianco, ecc.
Quale espressione o funzione useresti in arcpy per modificare lo stile di queste etichette?
Attualmente, lo script identifica gli appartamenti con un codice mappa e cambia il nome nel sommario in appartamenti, come dovrebbe.
Ora voglio cambiare il carattere, la grafica e le dimensioni delle etichette per renderle un'etichetta unica per ognuna, quindi creare un pulsante per premere e automatizzare semplicemente il processo ogni volta che dobbiamo fare uno di questi livelli.
Esiste un modo per modificare caratteri, etichette e grafica con l'uso dello scripting Python (ArcPy, IDLE, ecc.)?
Ho deciso di modificare questo post per dare una descrizione finale di ciò che sto andando qui, quindi non c'è confusione. In sostanza, i punti sulla mappa passeranno da come l'immagine sopra a questo:
Ho provato ad usare la lblClass.expression
funzione, tuttavia il codice che sto cercando di usare non funziona. Immagino che sia probabilmente il passo nella giusta direzione. Di seguito è riportato un codice che ho provato a utilizzare solo per ottenere il labelClass.expression per modificare i caratteri delle etichette.
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])