在ArcMap 10.2中将动态文本添加为​​文本元素

时间:2014-04-03 17:17:11

标签: dynamic text element arcmap

我在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的错误:本地变量&#39; mxd&#39;在赋值和IndexError之前引用:列表索引超出范围 我被困住了,需要帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

首先,您无法向mxd布局添加新文本元素,只能修改或复制现有文本元素。 其次,写下:

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

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

这假设你的mxd中有一个名为“”的文本元素。