Arcpy.mp是ArcPy的一个子模块,主要是用于操作现有工程 (.aprx) 和图层文件(.lyr 或 .lyrx)的内容。必须预先在应用程序中认真创作一个含所有相应元素的工程或图层文件,然后用 arcpy.mp 操作其内容。
工程(aprx)
1、打开工程文件。
# 获取当前工程
p = arcpy.mp.ArcGISProject('current')
# 打开指定路径的的工程
p = arcpy.mp.ArcGISProject(r'D:\GisPro工具箱\0-工具文件\空项目\调试.aprx')
2、获取ArcGIS工程 (.aprx) 中的视图(Layout) 对象。
# 括号内为搜索文字,* 为模糊匹配,生成结果是列表,所以加上[0]
lyt = p.listLayouts('*布局*')[0]
3、获取ArcGIS工程 (.aprx) 中的地图(Map) 对象。
map = p.listMaps('地图*')[0]
地图(Map)
1、获取地图(Map) 对象中的图层(Layer) 对象。
layer = map.listLayers('建筑')[0]
2、获取地图(Map) 对象中的表格(Table) 对象。
table = map.listTables('*指标表*')[0]
3、移除地图(Map) 对象中的图层(Layer) 对象。
map.removeLayer('*建筑*')[0]
4、移除地图(Map) 对象中的表格(Table) 对象。
map.removeLayer('*指标表*')[0]
5、地图(Map) 对象中的空间参考(spatialReference) 。
map.spatialReference
视图(Layout)
1、将视图内容导出PNG图片(同理还有JPG、PDF等)。
lyt.exportToPNG(r'C:\Users\Administrator\Desktop\out\new.png', 100,transparent_background=True)
2、获取视图(Layout) 对象中的要素(Elements) ,主要包括:
- LEGEND_ELEMENT —图例。
- MAPFRAME_ELEMENT — 地图。
- PICTURE_ELEMENT —图片。
- TEXT_ELEMENT —文字。
mf_main = lyt.listElements('MAPFRAME_ELEMENT', r'*地图*')[0]
图层(Layer)
1、判断图层(Layer) 对象是不是图层组,结果为True或False,只可读。
layer.isGroupLayer
2、判断图层(Layer) 对象是不是要素图层,结果为True或False,只可读。
layer.isFeatureLayer
3、控制图层的显示。 如果设置为 True,则绘制图层;如果设置为 False,则不绘制图层。
layer.visible = False
4、返回图层组或复合图层中的图层对象。
if layer.isGroupLayer == True:
ly = layer.listLayers('*建筑*')[0]
5、返回图层的名称。
layer.name
6、返回图层的符号系统。
layer.symbology