Estoy utilizando esta herramienta de script, en ModelBuilder for ArcGIS Pro, para configurar un diseño de mapa, hacer referencia a un marcador y exportar el diseño como PDF. Este modelo itera a través de los centros de Urgent Care y sus datos correspondientes de uno en uno (en orden alfabético por nombre de centro). Como mi modelo recorre cada centro de urgencias (a través de Iterate Field Values), repite el mismo marcador en cada bucle/iteración. ¿Cómo le digo que pase de un marcador a otro? (Tengo unos 90 centros, lo que significa también 90 marcadores).
Aquí está mi herramienta de script:
import arcpy
#input layer
lyr = arcpy.GetParameterAsText(0)
# input name of layout
p = arcpy.mp.ArcGISProject("CURRENT")
lyt = p.listLayouts("Layout_King")[0]
# Reposition the scale bar
scaleBar = lyt.listElements("MAPSURROUND_ELEMENT", "Scale Bar")[0]
mf = scaleBar.mapFrame
scaleBar.elementPositionX = mf.elementPositionX + 0.0
scaleBar.elementPositionY = mf.elementPositionY - 0.5
# Reposition the north arrow
northArrow = lyt.listElements("MAPSURROUND_ELEMENT", "North Arrow")[0]
mf = northArrow.mapFrame
northArrow.elementPositionX = mf.elementPositionX + 8.8
northArrow.elementPositionY = mf.elementPositionY + 0.7
# Align the title with the center of the map frame
title = lyt.listElements("TEXT_ELEMENT","Name of Map Text")[0]
mf = lyt.listElements('MAPFRAME_ELEMENT',"Map Frame")[0]
title.elementPositionX = mf.elementPositionX + (mf.elementWidth / 3.7)
title.elementPositionY = mf.elementPositionY + (mf.elementHeight / 0.98)
# Reposition the Legend and fix legend title
legend = lyt.listElements("LEGEND_ELEMENT", "Legend")[0]
legend.title = "Legend"
legend.elementPositionX = mf.elementPositionX + 7.7
legend.elementPositionY = mf.elementPositionY + 7.15
# setting layout to bookmark
aprx = arcpy.mp.ArcGISProject("Current")
# add name of layout
lyt = aprx.listLayouts("Layout_King")[0]
mf = lyt.listElements("MAPFRAME_ELEMENT")[0]
# add name of bookmark
bkmks = mf.map.listBookmarks()
bkmks.sort(key=lambda x: x.name, reverse=True)
for bkmk in bkmks:
mf.zoomToBookmark(bkmk)
lyt.exportToPDF(r"C:\arcGIS_Shared\Exports" + "\\" + bkmk.name + ".pdf")
He oído que esto podría lograrse mediante un bucle for, pero no sé cómo escribir uno.