Добавление динамического текста в качестве текстового элемента в ArcMap 10.2

Я создаю кнопку надстройки в ArcMap 10.2, которая добавляет плавающее составное динамическое текстовое поле в компоновку карты. У меня проблемы с моим сценарием, и я надеюсь, что у кого-то будет ответ.

Вот мой код:

def onClick(self):
    mxd = arcpy.mapping.MapDocument("CURRENT")
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]:
        elmWidth = 4.0
        x = 100
        elm.text = 'User: <dyn type="user"/> Date: <dyn type="date" format="short"/> <Document Path: dyn type="document" property="path"/>'
        elm.fontSize = x
        while elm.elementWidth > float(elmWidth):
            elm.fontSize = x
            x = x-1
    arcpy.RefreshActiveView()
    del mxd

Я получаю сообщения об ошибках UnboundLocalError: ссылка на локальную переменную mxd перед назначением и IndexError: индекс списка вне допустимого диапазона. Я застрял и мне нужна помощь.

Спасибо.


person geogeekme    schedule 03.04.2014    source источник


Ответы (1)


Во-первых, вы не можете добавить новый текстовый элемент в макет mxd, вы можете только изменять или копировать существующие. Во-вторых, напишите либо:

for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " "):
   ...

or

elm = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]

Это предполагает наличие текстового элемента с именем " " в вашем файле mxd.

person GISGe    schedule 03.04.2014
comment
Спасибо. Я просто добавлю динамический текст документа карты с помощью инструментов в ArcMap. - person geogeekme; 19.05.2015