Is there a way to auto pan to the next feature in a data-set with one click.

I just used Data Reviewer and when it brings back a list of attributes that need fixing it opens up a "browse features window."

This window allows you to simply click the next arrow to pan to the next broken feature.

In ArcMap without Data Reviewer I find that I have to manually look at each entry for QA/QC i.e. right click, pan to feature, fix problem, lose place, etc.

  • 1
    Unfortunately, no toolbar buttons that work in that manner. You could easily make one with addins. I use a combination of keyboard shortcuts found here. – Barbarossa May 30 '14 at 14:34
  • We had a couple of what I later found out were custom written tools to do this at a digitzing job I held. At the time I didn't realize they weren't actually part of ArcGIS. They had varying functionality - some just stepped through, some had interfaces to mark something as completed or not, etc. There are some freely available tools out there - I suggest Googling "arcgis step through selected features" as a starting point. But without knowing more specifically what you are trying to do/check (and what 'broken' means), it's hard to make specific suggestions. – Chris W May 30 '14 at 19:55
  • You might check out the Main Street Parcel Search plugin from here: mainstreetgis.com/arcgis.htm. I don't have it installed but I recalled using it years ago. – johns Nov 16 '15 at 21:14

This is perfect for an addin button.

Assuming you want to pan to every single in your feature dataset, you can use the OID to do this.

Something like this should give you a few ideas:

mxd = arcpy.mapping.MapDocument("CURRENT") 
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
layer = "<name of the layer>"
#Name of OID field
idname = [str(x.name) for x in arcpy.ListFields(layer, "*", "OID")][0]
old_oid = [x[0] for x in arcpy.da.SearchCursor(layer, idname)]
#Increment by 1 to advance to next feature.
arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION","{0}={1}".format(idname, old_oid+1))

Making this actually pan would be a little more code, as you'd need to get the extent of the selected feature and then use df.panToExtent().

Making this work when you aren't interested in sequential OIDS would be a little tougher to implement. Depends a lot on how your data is set up, of course.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.