当前位置:   article > 正文

arcgis10.7利用python批量出图_arcgis python 自动出图

arcgis python 自动出图

需求背景

现有张一张二张三等100余户宗地shp文件,需要以谷歌影像为底图绘制各户宗地范围图

文件准备

包含各户shp的gdb文件

制作出图模板 

制作出图模板

 

 出图模板

设置成果图的标题元素名称为mapname

实现代码

  1. import arcpy
  2. mxd = arcpy.mapping.MapDocument(r'C:/Users/Administrator/Documents/ArcGIS/model.mxd')
  3. df = arcpy.mapping.ListDataFrames(mxd, "图层")[0]
  4. Layers=arcpy.mapping.ListLayers(mxd, "", df)
  5. # 读取gdb中的shp
  6. arcpy.env.workspace = r"C:/Users/Administrator/Documents/ArcGIS/各户shp.gdb"
  7. datasets = arcpy.ListFeatureClasses('*','Polygon')
  8. all_shps=datasets
  9. # 替换数据源,生成新的mdx
  10. for r in datasets:
  11. for layer in Layers:
  12. if layer.name ==u'宗地边界':
  13. layer.replaceDataSource(r"C:/Users/Administrator/Documents/ArcGIS/各户shp.gdb","FILEGDB_WORKSPACE",r)
  14. # zoomToLayers
  15. arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION")
  16. df.zoomToSelectedFeatures()
  17. arcpy.SelectLayerByAttribute_management(layer, "CLEAR_SELECTION")
  18. # 修改图标题
  19. for elm in arcpy.mapping.ListLayoutElements(
  20. mxd, 'TEXT_ELEMENT'):
  21. if elm.name=="mapname":
  22. elm.text=r+u'宗地示意图'
  23. mxd.saveACopy(r'C:/Users/Administrator/Documents/ArcGIS/'+r+'.mxd')
  24. # exportTojpg
  25. arcpy.mapping.ExportToJPEG(mxd,
  26. resolution=600,
  27. out_jpeg=r"C:/Users/Administrator/Documents/ArcGIS/"+r+".jpg")
  28. # 从内存中释放
  29. del mxd

成果图件

 注意

1. 作为模板的model.mxd文件名必须是英文,否则python2.x版本没法读取中文会报错如下

2. 涉及到中文的地方最好都加上u,比如u'宗地示意图'。

3. 本方法适用于图例名字不改变的图

附件

全部文件在我的仓库中

k54kdk / arcpyBatchDrawing · GitCode

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/310814
推荐阅读
相关标签
  

闽ICP备14008679号