我目前正在尝试使用ArcPy映射,意图自动创建20 - 30个地图,而不是逐个手动创建。问题是没有任何反应,并且在实现代码时不会产生任何错误。我正在努力完成以下任务:
以下是我在ArcMap 10.2 python窗口中执行此操作的代码。任何帮助都会很棒。
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.ListDataFrames(mxd) [0]
lyrs = arcpy.mapping.ListLayers(mxd, df)
lyrFile = arcpy.mapping.Layer("C://Users/Me/Desktop/Fires_Global_ALL/sep03_12_Grid10min_asia.shp")
lyr文件是我在ArcMap中使用我想要的符号系统可视化的文件。
for lyr in lyrs:
arcpy.mapping.UpdateLayer( df, lyr, lyrFile)
arcpy.RefreshActiveView()
arcpy.RefreshTOC()
答案 0 :(得分:0)
我可以看到两个问题。\
首先,df = arcpy.ListDataFrames(mxd)[0]需要是arcpy.mapping.ListDataFrames(mxd)[0]
其次可能是主要问题,arcpy.mapping.ListLayers(mxd,df)当前正在传递df作为通配符,请参阅以下语法:
ListLayers (map_document_or_layer, {wildcard}, {data_frame})
您需要输入一个额外的空白通配符arg,即arcpy.mapping.ListLayers(mxd,“”,df),以按预期返回数据帧中的所有图层。
请参阅http://resources.arcgis.com/en/help/main/10.2/index.html#//00s30000002n000000