1.打开arcmap加载需要导出的图。需求是逐村显示“村界内图斑”并导出为图,在导出每个村时不显示周围的村和“村界内图斑”
2.arcmap上方空白处右键打开“数据驱动页面”
3.在“数据驱动页面”工具条点击第一个图标,打开“设置数据驱动页面”
4.在“设置数据驱动页面” 勾选“启用数据驱动页面”,在“索引图层”中选择需要驱动的图层(按照哪个图层的来批量出图) ,名称字段(按照驱动图层的哪个字段分别出图,该字段应具有唯一性),排序字段(用哪个字段排序,一般用名称字段排序)。需要对索引图层备份并加载进acrmap,一个作为索引图层,一个用于页面定义查询(可以使用当前数据驱动页面过滤要素,属性表必须具有包含页面名称的字段)。图层选择“村界-副本”,名称字段选择“XZBM”,排序字段选择“XZBM”
5.点击“数据驱动页面”的三角形前进后退按钮,检查屏幕中间的村和“村内图斑”是否跟着跳转,此时仍显示屏幕中间村周围的村和“村内图斑”
6.设置“页面定义查询”。在“村界”和“村界内图斑”分别右键点击“属性”,打开“定义查询”,点击“页面定义”,在“页面定义查询”窗口,勾选“启动”,设置“页面名称字段”(需与“设置数据驱动页面”的“名称字段”对应),选择“匹配”
7.不显示数据驱动页面图层(“村界-副本”),检查是否显示当前村村界外的村和“村内图斑”,
8.在arcmap菜单栏“视图” -“布局视图”中设置地图大小、添加地图要素(图例、指北针、图名、标注等)
9.在arcmap中打开python界面,输入代码,设置图名需要携带字段所在shp和字段名、导出路径,最后运行
mxd = arcpy.mapping.MapDocument("CURRENT")
file='E:\d_software\d_2PYthon\批量导出表带字段\村界.shp'#图名需要携带字段所在shp
field_name ='XZBM'#图名需要携带字段
cur=arcpy.da.SearchCursor(file,field_name)
t_list=[]
for row in cur:
t_list.append(row[0])
t_list.sort()#根据“数据驱动页面”排序字段选择确定是否sort
for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
mxd.dataDrivenPages.currentPageID = pageNum
arcpy.mapping.ExportToPNG(mxd, r"E:\新建文件夹\a"+str(t_list[pageNum-1]) + ".png")#输出路径
del mxd
10.检查运行结果。检查生成图片的图名是否与“数据驱动页面”的字段一一对应