0

我是 python 新手,我到处搜索,但我找不到明确的方法来获取地图中图层的索引,更具体地说是在给定的数据框中。我已经能够使用 ListLayers 函数列出图层。

我使用了这个不起作用的代码,我也没想到它会起作用,但我尝试了其他的东西,没有,所以我决定问小组,谢谢

import arcpy
mxd = arcpy.mapping.MapDocument(r"D:\PythonTest\Data\MyMap.mxd")
df = arcpy.mapping.ListDataFrarames(mxd, "MTM8")[0]
listlayer = arcpy.mapping.ListLayers(mxd, "", df)
for lyr in listlayer:
    print lyr.index(lyr)
4

1 回答 1

2

listlayers 方法返回 ArcGIS 图层对象的列表。在您的表达式中,您正在搜索对象的文本名称,而不是对象本身。这就是为什么 python 会返回 ""lyr" is not in the list"

我也在尝试为此制定正确的方法。到目前为止我所做的是创建两个列表:

  • 图层对象列表 (Layerlist)
  • 图层对象名称列表(retrievelist)

然后,我可以通过在检索列表中搜索文本名称来检索索引,然后使用该索引位置对图层列表进行切片,从而从图层列表中提取图层对象。看起来“不干净”,但由于两个列表的顺序完全相同,它可以工作。

我会对任何更清洁的解决方案感兴趣

于 2013-12-16T05:00:40.443 回答