Використання динамічного тексту для відображення кредитів шару


9

Я шукаю спосіб оновити 'кредитні шари' у динамічному текстовому полі. Я знайшов способи використання кредитів карти або фрейм даних кредитів тут , але не можу здатися способом отримати інформацію , отриману з шару.

Я, здається, щоразу створює порожню рядок. Хтось робив це чи знайшов роботу? Здається, надзвичайно корисним способом оновлення кредитів на карті майже без ресурсів.

Отримані властивості шару


Неможливо це зробити динамічно, оскільки вбудовані динамічні тексти базуються на документі чи кадрі даних. Однак це, безумовно, можливо, якщо ви готові запустити сценарій для заповнення текстового поля щоразу, коли ви робите карту. Або навіть заповнити кредитні картки з усіх кредитів шару. Якщо це те, що ви хочете, я можу надати код arcpy для цього.
Фестер

Відповіді:


17

Як було сказано в моєму коментарі вище, немає способу зробити це за допомогою динамічного тексту. Однак ви можете написати сценарій для цього і приєднати його до кнопки додавання пітона, або запустити, коли ви збережете MXD або щось подібне. Вам потрібно буде створити текстовий елемент для зберігання кредитів і назвати його на кшталт "КРЕДИТИ" так:

введіть тут опис зображення

Основний код виглядатиме приблизно так:

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 Ось як я це зробив би - відповів би майже однаковим кодом.
Midavalo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.