[GIS] Can a mask layer in advanced drawing options be easily reversed

arcgis-10.0cartography

I wonder if there is an solution to my crude workaround. I use often use the Advanced Drawing Options to mask items such as line underneath a contour label, etc.

I am continually running into situations where I need to reverse this mask. Instead of masking a line features that intersects several large lakes for example I would like to mask the portion of that line feature that does not cross intersect those lakes: a reverse mask.

The crude workaround is to create a large polygon feature and clip all the "lakes" out then use this feature as the Masking layer. It works but it is not easily maintained especially when the "masked" feature changes.

Example: I have a map of a province with shaded relief and 20 layers of various spatial information. I have a polygon of an area of interest (AOI) and I need to show all spatial information within the AOI but only basic information outside this AOI (i.e. shaded relief, hydrology). If I create a layer that contains the province polygon with the AOI clipped out, i can use it as a Mask in the Advanced drawing options. This creates redundant data and extra work. Is there a better workaround?

Best Answer

I simply use the layer order to mask.
If you pull a line layer below a polygon layer it will mask the line.

If you need some buffer around the polygon.
You can make a copy of the polygon layer and set it's fill and edges to the same color as the background (white maybe).
Set it below the first polygon layer and above the line layer.
There are many more techniques so If you have more questions just add to this question and we can continue.

EDIT: The only other method I can think of is too do a spatial join. Where if your lines were clipped (not clipped but broken) at all the polygon edges, then a spatial join would add attributes from each polygon (hopefully they don't overlap).

Then you could do a definition query that looks like poly_name IN (thislake, thatlake, theotherlake).

this would only show the lines inside the polygons.