使用动态文本显示图层功劳


9

我正在寻找一种将“图层信用”更新为动态文本框的方法。我发现使用地图信用或数据帧学分的方式在这里,但似乎无法一种方式来获得从层获得的信息。

我似乎每次都会产生一个空字符串。是否有人这样做或找到解决方法?似乎是一种非常有用的方法,可以用很少甚至没有资源来更新地图积分。

派生图层属性


由于内置的​​动态文本全部基于文档或数据框,因此无法动态地执行此操作。但是,如果您愿意在每次制作地图时都运行脚本来填充文本字段,则绝对可以实现。或者,甚至从所有图层信用中填充地图信用。如果您要这样做,我可以提供一些arcpy代码。
Fezter

Answers:


17

正如我在上面的评论中提到的那样,没有办法使用动态文本来做到这一点。但是,您可以编写脚本来执行此操作,并将其附加到python插件按钮或在保存MXD或其他内容时运行。您需要创建一个文本元素来保存功劳,并将其命名为“ CREDITS”,如下所示:

在此处输入图片说明

基本代码如下所示:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.