Mer

Iterering gjennom alle geometrier ved hjelp av ArcPy -søkemarkør?


Jeg vil gjerne bruke et python-tillegg som bruker et knappeklikk for å gå gjennom hver valgt polygon en etter en.

Følgende kode klarer bare å zoome til den første polygonen. Hvordan kan jeg tilpasse den til å zoome til hver valgt polygon?

mxd = arcpy.mapping.MapDocument ('CURRENT') df = arcpy.mapping.ListDataFrames (mxd, "Layers") [0] Envelopes = [] # store utvidelser her # finn utvalgssettet SelLayer = arcpy.mapping.ListLayers ( mxd, data_frame = df) [0] # første lag fidSet = arcpy.Describe (SelLayer) .FIDSet if len (fidSet) == 0: arcpy.AddMessage ("Ingenting valgt") annet: # nå markøren gjennom det og få geometrier # lagrer omfanget i en liste med arcpy.da.SearchCursor (SelLayer, "[email protected]") som SCur: for bragd i SCur: # Jeg kommer til å anta polygon/polyline Envelopes.append (feat [0] .extent ) # grab the envelope df.extent = Konvolutter [0] # første grad arcpy.RefreshActiveView ()

Du samler inn omfangene for hver polygon riktig, men må zoome til dem i løkken, eller en senere sløyfe, avhengig av hva du vil gjøre.

For eksempel for å zoome inn den samme sløyfen som søkemarkøren f.eks.

med arcpy.da.SearchCursor (SelLayer, "[email protected]") som SCur: for bragd i SCur: # Jeg kommer til å anta polygon/polyline Envelopes.append (feat [0] .extent) # grab the envelope df.extent = feat [0] .ekstent # første grad # <- Flytt dette inn i loop-arcpy.RefreshActiveView () time.sleep (5) # Vent 5 sekunder. # ^ Erstatt dette med det du vil gjøre på hver poly.


Se videoen: Python: Map Automation in ArcGIS Pro (September 2021).