Utilizzo del testo dinamico per visualizzare i crediti di livello


9

Sto cercando un modo per aggiornare i "crediti di livello" in una casella di testo dinamica. Ho trovato il modo di utilizzare i crediti della mappa o i crediti della cornice dati qui, ma non riesco a ottenere un modo per ottenere le informazioni derivate da un livello.

Mi sembra solo di produrre una stringa vuota ogni volta. Qualcuno ha fatto questo o trovato un lavoro in giro? Sembra un modo estremamente utile per aggiornare i crediti delle mappe con poche o nessuna risorsa.

Proprietà del livello derivate


Non è possibile farlo in modo dinamico, poiché i testi dinamici incorporati si basano tutti sul documento o sulla cornice dati. Tuttavia, questo è sicuramente possibile se sei disposto a eseguire uno script per popolare un campo di testo ogni volta che crei una mappa. Oppure, popolare anche i crediti della mappa da tutti i crediti di livello. Se questo è ciò che stai cercando, posso fornire un codice arcpy per farlo.
Fezter

Risposte:


17

Come menzionato nel mio commento sopra, non c'è modo di farlo usando il testo dinamico. Tuttavia, è possibile scrivere uno script per farlo e collegarlo a un pulsante di aggiunta di Python o eseguirlo quando si salva l'MXD o qualcosa del genere. Dovrai creare un elemento di testo per contenere i crediti e nominarlo come "CREDITI" in questo modo:

inserisci qui la descrizione dell'immagine

Il codice di base sarebbe simile al seguente:

mxd = arcpy.mapping.MapDocument("current")
credit_text = ""
for layer in arcpy.mapping.ListLayers(mxd):
    credit_text += (layer.credits + "\n") # separate each line with a carriage return
for el in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
    if el.name == "CREDITS":
        el.text = credit_text

2
+1 Ecco come lo farei - avrebbe risposto con lo stesso codice.
Midavalo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.