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()
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.