Ask A Cartographer

How do I change the format of selected groups of annotation?

August 14 2008 | 0 comments
Categories: ArcGIS Methods, Labeling, Map Data, Symbology

I have a standard annotation feature class (“TownAnno7_7_08”) of town names. I’d like to format the annotation in each county so that each anno feature has a halo to match the county’s color. The font size and other formatting attributes for the features vary a lot, and I want to keep them as is. How shall I proceed?
Also, TownAnno7_7_08 does not have many of the fields that were in the anno class (GISDATA_TOWNS_ANNO_NAME_EDIT) from which it was derived (see attached). Will this limit TownAnno7_7_08’s functionality?
Thank You

Mapping Center Answer:

So, I tried this a couple ways (since I first went to the trouble of writing the first method, I'm leaving it, but I'd suggest skipping ahead to the second method):

Method 1:

Since adding halos will actually produce new text symbols within your annotation feature class, it will be better for you to take advantage the symbol list for your annotation feature class. 

First, though, you'll need to add the county ID to your anno:

  1. Use the Identity tool where your anno feature class is the input and your counties are the identity features.  This will produce a polygon dataset.
  2. Open the attribute field for your annotation feature class, and click on the Options button and choose Add Field.  In your case the field would be a text field called Cnty_name.
  3. Create a join on your anno layer based on the FID where you will join the polygons produced in Step 1 and will use the anno FID field in that polygon dataset.
  4. Calculate the new field to be the same as the joined county name field.
  5. Remove the join on the anno

So, now you have the county ID in your anno.  With your annotation feature class's table still open in ArcMap, click on the Cnty_name field and choose Freeze/Unfreeze column, then click on the SymbolID column and choose Freeze/Unfreeze.  Then with both fields at the left of your annotation table, right click on the Cnty_name field and choose Sort Ascending.  This will show you each county and the set of town symbols--For each unique combination you will need a new symbol in your annotation feature class. If there is a large number of different symbol ids for each county, I would add a new field and calculate it to "Cnty_name" & '_' & "symbolid"; then summarize that field which will give you a table of the unique combinations.  Otherwise if you have just a few combinations, I'd just write them down on a pad of paper

To edit the annotation class's symbol list open ArcCatalog and browse to your annotation class, right click on it and choose Properties.  Then show the Annotation tab.  Create new symbols with the halos and note the Symbol ID. 

Last you can calculate, in ArcMap, while in an edit session, the symbolid field for each unique combination, assigning your new symbols.

Method 2:

So, method 1 took a long time, I'm betting it will be much faster to run the identy or spatial join tool on your towns to assign the county name as an attribute on the towns layer, and then create label classes based on town size (or whatever other characteristics distinguished your town labels) and which county they're located.  Then set up the symbols you want for this map and create new annotation. 

I suspect method 2 will take half the time method 1 took. Either way it's a bit of work. 

If you would like to post a comment, please login.

Contact Us | Legal | Privacy |