by Michael Black, Senior Consultant/Product Manager
Within ESRI’s ArcGIS Desktop Software, there are two fundamental methods for displaying text on maps – Annotation and Labels (also referred to as Dynamic Labels). In general, dynamic labels are more suited to “browse” type applications (on-screen display, web applications, etc) while annotation is the preferred approach where the position of text is critical, such as publication mapping.
ArcGIS Desktop supports two types of annotation:
• Geodatabase Annotation (stored as a feature class in a Geodatabase)
• Map Annotation (stored as a layer in an ArcMap MXD document)
ArcGIS also supports the display and conversion of other annotation types including ArcInfo coverage and computer-aided design (CAD).
Geodatabase annotation elements are stored in special types of feature classes inside the geodatabase and are managed, manipulated and edited just like a point, line or polygon feature class.
Geodatabase annotation can be standard annotation or feature-linked annotation. Standard annotation feature classes are not formally associated with the features from which the annotation was created. Feature-linked annotation is a special type of geodatabase annotation that is directly linked to the features that are being annotated by a geodatabase relationship class.
To create and edit feature linked annotation in the geodatabase, an ArcEditor or ArcInfo license is required. Feature-linked annotation is similar to standard geodatabase annotation but also has some behaviour that makes it similar to dynamic labelling. When a new feature is created, new annotation is automatically created. When a feature is moved or updated, the annotation also move or updates. If you delete the feature, the annotation is deleted. An annotation feature class can be linked to only one feature class, but a feature class can have many linked annotation feature classes.
What Happens When You Create Feature Linked Annotation
Feature linked annotation feature classes can be created in ArcCatalog or more commonly in ArcMap via the “Convert Labels to Annotation” function as shown in Figure 1 and 2.
When a new feature-linked annotation feature class is created, a relationship class is also created. The relationship class provides the mechanism by which edits to features are “cascaded” to the related annotation features as shown in Figure 4. Figure 5 provides an example of the properties of a relationship class for feature linked annotation.
The use of a relationship class is not the only difference between feature-linked annotation and standard annotation; you can't create a feature-linked annotation feature class from a standard annotation feature class by adding this relationship class or by any other method. If you want feature-linked annotation, you should start with a feature-linked annotation feature class.
There are several ways to create feature-linked annotation. First, if you have defined a feature-linked annotation feature class, as you create new features using the editing tools in ArcMap, annotation will be created for these features automatically. Second, you can also use the “Annotate Selected Features” command in ArcMap to add linked annotation to existing features. Finally, you can convert labels to feature-linked annotation in ArcMap or use the ArcToolbox annotation conversion tools to create feature-linked annotation from coverage or CAD annotation.
Now that we have our feature linked annotation, we will demonstrate two edits tasks. As shown in Figure 6: When we move a point, the annotation for that point also moves.
When we update the contents of the field (used to create the labels and subsequent annotation), for a point, the annotation also updates automatically. In the example shown in Figure 7, the feature linked annotation has been created by labelling the “Place_Name” field. After we have converted the labels to feature linked annotation, subsequent edits to the attributes of a point (such as changing the name to North Fitzroy) will cause the linked annotation feature to be updated.
Label Engine Dependencies
A little known aspect of feature linked annotation is its dependency on the underlaying label engine used to create the annotation. Feature-linked annotation retains the labelling properties of the label engine used to create it. If a feature linked annotation feature class is created using the Maplex Label Engine, it will have Maplex labelling properties. If the feature linked annotation feature class is created using the standard label engine, it will have standard label engine properties.
In order to edit feature linked annotation correctly, editors must also have access to a Maplex Licence when making edits to that annotation. This means that you must either be using an ArcInfo licence or have a Maplex licence available if you are using ArcEditor. This can present problems for organisations that use create feature linked annotation feature classes using ArcInfo, and then pass editing tasks onto users who only have ArcEditor (without Maplex Licences).
Let’s Demonstrate the Impact of This Situation
Using our sample point feature class (locations), we create a feature linked annotation feature class. We use the Maplex label engine to label the feature prior to converting to annotation. Labels are placed on top of points as shown in Figure 8.
Figure 8: Point feature class labelled using Maplex
Once we convert these labels to a feature linked annotation feature class, we then start editing. In the first instance, we will turn the Maplex Licence “off”, but the licence will remain “available” (i.e. no other user will be using the Maplex Licence). As shown in Figure 9, a copy and paste task creates both a new point feature and annotation feature and the new features have the “same” behaviour as the original feature.
Figure 9: Copy and Paste Task - Annotation placement correct based on underlying Maplex Label engine
In the second instance, we will “force” the Maplex licence to be unavailable by activating it on another PC on the network. We then repeat the copy and paste task. As shown in Figure 10, the appearance of the new annotation is different now that the Maplex licence is not available.
Figure 10: Copy and Paste Task – Annotation placement varies due to the use of the standard label engine.
As you can see, if you do not have a Maplex licence, your labels will look different as the standard label engine is being used instead.
A final note – interestingly, ArcMap ignores any settings you have in the Extension dialog when dealing with the copy and paste functions used in this example. Even if you have the Maplex extension turned off, new annotation will be created using the Maplex label engine provided a licence is physically available from your licence server.
Feature linked annotation stored in a Geodatabase is an efficient approach for producing, managing and editing annotation that needs to remain “related” to the underlying features used for labelling.
The dependency on the underlaying label engine can present challenges, especially when working in a mixed licence environment. Where possible, use the standard label engine if you can and this will eliminate the need for your ArcEditor users to have access to a Maplex licence when editing feature linked annotation.