Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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?

share|improve this question
    
ArcMap's drawing tools are pretty weak. For final products where I want more polished and complex display options, I move to something like Illustrator. –  Sean May 10 '11 at 13:41
add comment

2 Answers

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.

share|improve this answer
    
Thanks Brad.Layer order won't work in this situation. lots of semi-transparent items, lots of complex layers. My line is behind a transparent relief, behind lakes and I need to continue the line as semi-transparent (different color, thickness for each symbol) above the lakes. –  Jakub May 6 '11 at 19:53
    
@Jakub - You do understand what I am saying about the layer copy? I don't read anything that would stop me from doing that. –  Brad Nesom May 6 '11 at 20:36
    
I need a reverse of this: "If you pull a line layer below a polygon layer it will mask the line." –  Jakub May 9 '11 at 13:08
    
I added an example that explains it better. I need the exact opposite of what the masking layer can do. Something similar to the Data Frame "Clip to shape" option but for each layer rather then the entire Data Frame. –  Jakub May 9 '11 at 13:18
    
I think I see the problem now. If I think of anything I will try to help. –  Brad Nesom May 9 '11 at 13:43
add comment

One crude way of achieving a similar effect is by varying the contrast with background colors.

For example, if your line work is black and the lake a pale blue put the AOI underneath the lakes and lines and set the color to white. Then, make the data frame's background color much darker like 40-60% black. Your line work and other feature should stand out in high contrast over the AOI but blend in with the darker background of the data frame.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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