Optimizing map text and labels for performance
When symbolizing text on your map, there are several choices you can make to improve performance, including considerations for the appearance of the text symbol and the type of text that will be used.
In general, use annotation instead of labels to improve performance. Since labels require the computer to make placement decisions, annotation may be faster.
If both annotation and labels exist on your map, keep in mind that the annotation may be considered an obstruction to label placement. In that case, set conflict detection weight to none for annotation groups on the map. However, don't set all the weights to none; you will almost always need them to get good labeling results.
Below are some guidelines for maintaining performance in using text on your map.
As is the case for other types of symbols, the fewer processing decisions that ArcMap needs to make, the faster the map will draw. Here are some guidelines for maintaining good drawing performance with text symbols:
- Reduce the size of your text when possible. Very large text symbols, such as those greater than 60 points, will increase drawing time.
- More complex symbols will draw slower. Therefore, minimize the use of text effects, such as callouts, leader lines, offsets, halos, backgrounds, and fill patterns.
- Use shadows rather than halos or masks around the text. You can add shadows using the Advanced Text tab of the Text Symbol Editor dialog box.
Here are some guidelines for maintaining good drawing performance with labels:
- Labels will draw quickly if the text for the label is stored in a single field in the layer's attribute table. If your map is slow to draw because of the labels, work on simplifying SQL queries and label placement requirements.
- Label expressions slow drawing performance. In particular, avoid using label expression scripts to conditionally parse or format label strings or to concatenate the information in multiple fields into one label string when drawn. Instead, calculate a new field with exactly the information that is needed. The field can include formatting tags.
- Fields in SQL queries should be indexed whenever possible.
- Avoid using complex SQL queries to create multiple label classes.
- Use label and feature conflict weights sparingly. When possible, keep feature weights set to none.
- Straight-line labels draw faster than labels that follow the curve of a line.
- Label effects will also slow down performance. See the section above for other examples of how to optimize text symbols.
- Set scale-dependent rendering for labels. When a map is zoomed out, more labels need to be drawn, which takes time. Examine your map document and determine if some labels do not need to be shown at smaller scales.
If both map annotation groups and labels exist on your map, keep in mind that the annotation may be considered an obstruction to label placement. In that case, set conflict detection weight to none for annotation groups on the map. However, don't set all the weights to none, because you will almost always need them to get good labeling results.
The Maplex Label Engine, which is provided with the Maplex for ArcGIS extension, has many more label placement options than the Standard Label Engine. The advanced placement decisions may affect performance. Therefore, you might consider converting Maplex labels to annotation. For faster dynamic labels, use the Standard Label Engine. You can choose the label engine on the General tab of the Data Frame Properties dialog box.
When you use ArcMap to create annotation, it can be saved as map document annotation stored in annotation groups or as geodatabase annotation stored in geodatabase annotation feature classes. For an overview of these formats and some of the performance considerations of each, please see A comparison of annotation groups vs. geodatabase annotation.