import arcpy # Get reference to your dataframe mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "*")[0] # Loop through layers in first dataframe for lyr in arcpy.mapping.ListLayers(mxd, "", df): extent = arcpy.Describe(lyr).extent extentArray = arcpy.Array(i for i in (extent.lowerLeft, extent.lowerRight, extent.upperRight, extent.upperLeft, extent.lowerLeft)) extentPolygon = arcpy.Polygon(extentArray, arcpy.SpatialReference(4269)) # Check if the layer can be seen at all... if not, turn it off if (df.extent.overlaps(extentPolygon) == True or df.extent.within(extentPolygon) == True or df.extent.contains(extentPolygon) == True): lyr.visible = True else: lyr.visible = False del extent del extentArray del extentPolygon # Refresh the View arcpy.RefreshActiveView()
# Get your Feature Layer extent layer = arcpy.mapping.Layer("Your Feature Layer") extent = arcpy.Describe(layer).extent # Create a Polygon object from that extent extentArray = arcpy.Array(i for i in (extent.lowerLeft, extent.lowerRight, extent.upperRight, extent.upperLeft, extent.lowerLeft)) extentPolygon = arcpy.Polygon(extentArray, arcpy.SpatialReference(4326)) del extentArray
# Get reference to your dataframe mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "*")[0] # Whenever appropriate, test if the layerframe overlaps the extent geometry of your feature layer if df.extent.overlaps(extentPolygon) == False: layer.visible = False arcpy.RefreshActiveView()
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.