Jump to content

 
Photo

Masking Annotation Layers in ArcMap

- - - - -

  • Please log in to reply
4 replies to this topic

#1
Unit Seven

Unit Seven

    Legendary Contributor

  • Moderator
  • PipPipPipPipPip
  • 266 posts
  • Gender:Male
  • Location:New Zealand
  • New Zealand

I am wanting to mask out specific pieces of annotation in a large dataset for seperate maps.

Thought I had this all sussed and created a polygon feature class and drew masks for the text I wanted to mask. Then went to the Layout Windows options and under advanced drawing options was going to set up masking in here but it seems while a polygon layer can be used to create masking on another polygon, line or point layer it cant be used to mask annotation.

Do any of you know anyway to mask annotation around the edges of a map without modifiyiong the annotation class in any way (ie not using the status field in the annotation feature class)?

Look forward to hearing any ideas,


Sam.
S a m B r o w n

U N I T S E V E N
unit.seven@gmail.com

Miramar, Wellington
N E W Z E A L A N D

#2
peanut

peanut

    Master Contributor

  • Validated Member
  • PipPipPipPip
  • 138 posts
  • Location:Austin, TX
  • United States

In ArcMap 9.2 you can control the drawing order of your annotation classes in the table of contents so you should be able to just add your polygon layer above your annotation layer.

In previous versions of ArcMap the annotation always drew on top... This might be your problem.

If you only have a few pieces of annotation to mask. You might try doing a definition query using the OBJECTIDs of the annotation you don't want to show (OBJECTID <> ## and OBJECTID <> ## etc...)

Hope this helps.

Rich

#3
Unit Seven

Unit Seven

    Legendary Contributor

  • Moderator
  • PipPipPipPipPip
  • 266 posts
  • Gender:Male
  • Location:New Zealand
  • New Zealand

In ArcMap 9.2 you can control the drawing order of your annotation classes in the table of contents so you should be able to just add your polygon layer above your annotation layer.

In previous versions of ArcMap the annotation always drew on top... This might be your problem.

If you only have a few pieces of annotation to mask. You might try doing a definition query using the OBJECTIDs of the annotation you don't want to show (OBJECTID <> ## and OBJECTID <> ## etc...)

Hope this helps.

Rich


Thanks for the repy Rich—don't think I explained the type of mask I was going to be using very well. I want to use the polygon layer as a 'varible depth mask' so the objects in the appropriate Anno layer are masked but not the objects below. The anno is usually a street name on top of a road and we obviousy don't want to hide the road running off the page only the text that has been cut off. So a opaque mask won't do the trick. This means it will create postscript (or pdf) clipping masks on output. This is avaible to mask other feature classes (line, poly, point) and is often used in cul-de-sac and contour masking.

The def query was the other way we were going to go about it but as there are a large number we were going to create a table of OBJECTIDs (MskObjtsTble) to be masked and then do a join with the Annotation feature class and those that didn't have a join result would be shown. Problem was we found this to be a real performance hit on the large dataset and a bit messy so looks like we will copy and clip the anno layer for each map and use the original for reference at update time.

Unless anyone else has any ideas…

Cheers,
Sam.
S a m B r o w n

U N I T S E V E N
unit.seven@gmail.com

Miramar, Wellington
N E W Z E A L A N D

#4
David T

David T

    GIS Manager, USMC, MCIWEST-MCB Camp Pendleton

  • Validated Member
  • PipPipPipPip
  • 192 posts
  • Gender:Male
  • Location:San Diego, California
  • United States

I've been wrestling with this as well. I am developing an atlas of Housing Areas on one of my Marine Corps Bases. When we zoom into a particular housing area, we will have streets that go off the map. And the annotation for the streets may end up with the label half on the map, half off the map.

The only solution I've been to come with is similar to the query solution. I haven't put this into practice yet, but I am about to do so. I believe ArcGIS 9.2 allows you to add fields to annotation feature classes. My plan is to add an attribute called 'housing_area' to the annotation feature class. Then assign the appropriate housing area name to the label. Then, as each housing area is displayed, query only those annotation labels that are within the housing area.

I'm not sure if there is a way to have ArcGIS turn off annotations that are not completely contained within the map view. That would be a nice feature to have. It certainly would make better looking maps on the fly.
David Toney, GISP
GIS Manager
United States Marine Corps
West Coast Installations

#5
Unit Seven

Unit Seven

    Legendary Contributor

  • Moderator
  • PipPipPipPipPip
  • 266 posts
  • Gender:Male
  • Location:New Zealand
  • New Zealand

I've been wrestling with this as well. I am developing an atlas of Housing Areas on one of my Marine Corps Bases. When we zoom into a particular housing area, we will have streets that go off the map. And the annotation for the streets may end up with the label half on the map, half off the map.

The only solution I've been to come with is similar to the query solution. I haven't put this into practice yet, but I am about to do so. I believe ArcGIS 9.2 allows you to add fields to annotation feature classes. My plan is to add an attribute called 'housing_area' to the annotation feature class. Then assign the appropriate housing area name to the label. Then, as each housing area is displayed, query only those annotation labels that are within the housing area.

I'm not sure if there is a way to have ArcGIS turn off annotations that are not completely contained within the map view. That would be a nice feature to have. It certainly would make better looking maps on the fly.


Hi David—thanks for your feedback.

Agree with you that adding the field is how I would go about it in your case if that works. In ours we have many many maps all using this annotaion F/Class as a base (even the job I am grappling with now may have the same piece of anno on a couple of maps) so isn't really practical to add fields—this was why I was experiementing with the table and then joining to the anno table so I just had a table for each client or job that I would join to our base F/Class.

I haven't come accross anything to turn off annos that are clipped but you could do a select by spatial location > all objects that are compleatly inside a map box element in a shapefile and then create a layer from that selection. This is my next step to experiemnt with but I think it's not going to offer us any advantage over working with a duplicate of the anno f/class and making client edits to that.

I hope they extend varible depth masking to include annotation layers—would be a great tool for map production from base data sets.

Cheers.
S a m B r o w n

U N I T S E V E N
unit.seven@gmail.com

Miramar, Wellington
N E W Z E A L A N D




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

-->