遍历要素,修改内容,导出为PDF
import arcpy.mp as map
try:
#打开工程文件
aprx = map.ArcGISProject("CURRENT")
#打开布局
lyt = aprx.listLayouts("Crime")[0]
#读取布局中的要素,限定类型和名称
for el in lyt.listElements("TEXT_ELEMENT","Title"):
#修改标题的文本
el.text = "Crime and It\’s Impact on School TestPerformance - 2009"
outFile = r"D:\个人资料\Arcpy\ProgrammingPro\My Projects\ImportedCrime\Layout"
#导出PDF,设置为高清格式,内嵌字体文件
lyt.exportToPDF(outFile, image_quality="BEST",embed_fonts=True)
print("Exported Layout to PDF")
#导出JPEG,DPI400,高清格式
lyt.exportToJPEG(outFile,400,8,100,True)
print("Exported Layout to JPEG")
except Exception as e:
print("Error: " + e.args[0])
MapFrame(地图框)
使用MapFrame可以对布局中的地图框进行操作:更改布局中地图框的大小和位置,使其可见或隐藏;导出地图为各种格式的图像;获取地图框中图层的范围,平移到某个范围,缩放到图层,以及缩放到书签。
导出地图框为
import arcpy.mp as map
try:
#打开工程文件
aprx = map.ArcGISProject(r"D:\个人资料\Arcpy\ProgrammingPro\My Projects\ImportedCrime\ImportedCrime.aprx")
#打开布局
lyt = aprx.listLayouts("Crime")[0]
#读取布局中的要素,限定类型和名称
mf = lyt.listElements("MAPFRAME_ELEMENT", "Crime_Inset Map Frame")[0]
#导出
outFile = r"D:\个人资料\Arcpy\ProgrammingPro\My Projects\ImportedCrime\CrimeInset.png"
mf.exportToPNG(outFile,400)
print("Export Inset Map to PNG File")
except Exception as e:
print("Error: " + e.args[0])
缩放和平移要素
缩放到所选要素
import arcpy.mp as map
try:
#读取工程
aprx = map.ArcGISProject("CURRENT")
#读取MAP地图框
m = aprx.listMaps("Map")[0]
#读取MAP地图框中的要素
parcelLyr = m.listLayers("Parcels")[0]
#读取布局
lyt = aprx.listLayouts("Park Layout")[0]
#读取布局中地图框
mf = lyt.listElements("MAPFRAME_ELEMENT")[0]
#缩放至选择的要素
mf.zoomToAllLayers(True)
except Exception as e:
print("Error: " + e.args[0])
所选要素平移到中间
import arcpy.mp as map
try:
#读取工程
aprx = map.ArcGISProject("CURRENT")
#读取MAP地图框
m = aprx.listMaps("Map")[0]
#读取MAP地图框中的要素
parcelLyr = m.listLayers("Parcels")[0]
#读取布局
lyt = aprx.listLayouts("Park Layout")[0]
#读取布局中地图框
mf = lyt.listElements("MAPFRAME_ELEMENT")[0]
ext = mf.getLayerExtent(parcelLyr,True)
mf.panToExtent(ext)
except Exception as e:
print("Error: " + e.args[0])
调整3D视角
import arcpy.mp as map
try:
aprx = map.ArcGISProject("CURRENT")
m = aprx.listMaps("Union City")[0]
lyt = aprx.listLayouts("Union City Layout")[0]
mf = lyt.listElements("MAPFRAME_ELEMENT")[0]
camera = mf.camera
#获取摄像头模块,打印当前参数
if camera.mode == "LOCAL":
camera.pitch = 0.00
camera.roll = 00.00
camera.heading = -90.0
except Exception as e:
print("Error: " + e.args[0])