R
ECORD
记录
这是一个简单的脚本操作,主要用来显示某地图文档中的图层名称。其原理是引用本地磁盘上的地图文档,然后获取地图文档中的图层列表。需要注意的是接下的实验是在Window7系统,2.7版本的Python,10.3版本的ArcGIS进行的。
实验事例:
一、准备需要操作的地图文档(*.mxd),实验的是pname.mxd。
二、打开Python自带的IDE集成开发工具,打开shell后直接Ctrl+N快捷键创建新的file来写代码,本实验不是在交互式下操作的。
代码:
#给引用的arcpy.mapping改名为mapping
import arcpy.mapping as mapping
#引用本地路径的pname.mxd文档并赋值给mxd变量
mxd=mapping.MapDocument(r"J:\text\printlayername\pname.mxd")
#获取mxd文档中的图层名称
LName=mapping.ListLayers(mxd)
for lyn in LName:#历遍所有图层名称
print(lyn.name)#打印图层名称
运行结果:
知识小点:
Mapping.MapDocument(path or "current")用于访问地图文档。其使用方法分2种。一种是以current作为参数,该方法仅在ArcMap应用程序内部使用(提示:ArcCatalog下不能使用),引用ArcMap当前活动的文档。另一种是引用电脑本地特定位置的文档。
参数:path完整的引用对象路径或者关键字current。
代码演示:
#用as语句把arcpy.mapping改名mapping
import arcpy.mappingas mapping
#引用b.mxd文档
mxd=mapping.MapDocument(r"J:\text\b.mxd")
#打印b.mxd文档的地图文档标题
print(mxd.title)
Mapping.ListLayers(map_document,,)返回在map文档中存在的图层对象的list列表。
参数:map_document引用mxd文档变量对象。
Wildcard通配符可选参数若地图文档中存在多个数据框,则可以通过通 配符来查找相应的数据框名称,若不填则系统默认第一个数据框。
data_frame是一个可选参数,它是引用ListDataFrames()的赋值给的变量 对象。
代码演示:
#引用wx.mxd文档
mxd=mapping.MapDoucment(r"J:\text2\wx.mxd")
#获取mxd文档中的图层名称
lyer=mapping.ListLayer(mxd)
领取专属 10元无门槛券
私享最新 技术干货