Menggunakan teks dinamis untuk menampilkan kredit lapisan

9

Saya mencari cara untuk memperbarui 'kredit lapisan' ke dalam kotak teks dinamis. Saya telah menemukan cara-cara menggunakan kredit peta atau kredit bingkai data di sini, tetapi sepertinya tidak ada cara untuk mendapatkan informasi yang berasal dari sebuah layer.

Saya sepertinya menghasilkan string kosong setiap saat. Adakah yang melakukan ini atau menemukan pekerjaan? Sepertinya cara yang sangat berguna untuk memperbarui kredit peta dengan sedikit atau tanpa sumber daya.

Properti Layer yang diturunkan

Slevy
sumber
Tidak ada cara untuk melakukan ini secara dinamis, karena teks dinamis bawaan semuanya didasarkan pada dokumen atau bingkai data. Namun, ini sangat mungkin jika Anda ingin menjalankan skrip untuk mengisi bidang teks setiap kali Anda membuat peta. Atau, bahkan isi kredit peta dari semua kredit lapisan. Jika ini yang Anda cari, saya bisa memberikan beberapa kode arcpy untuk melakukannya.
Fezter

Jawaban:

17

Seperti yang disebutkan dalam komentar saya di atas, tidak ada cara untuk melakukan ini menggunakan teks dinamis. Namun, Anda bisa menulis skrip untuk melakukan ini dan melampirkannya ke tombol add-python atau menjalankan ketika Anda menyimpan MXD atau sesuatu. Anda harus membuat elemen teks untuk menahan kredit dan menamakannya sesuatu seperti "KREDIT" sebagai berikut:

masukkan deskripsi gambar di sini

Kode dasar akan terlihat seperti ini:

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
Fezter
sumber
2
+1 Begitulah cara saya melakukannya - akan dijawab dengan kode yang sama.
Midavalo