4.1 Labeling Basics & SQL Label Classes
Key Takeaways
- Dynamic labeling automatically places descriptive text based on underlying layer attribute values.
- Label classes allow cartographers to divide vector features into distinct groups and apply unique labeling rules, fonts, and scale ranges.
- SQL queries inside label classes isolate specific feature subsets (e.g., POPULATION >= 500000) for custom cartographic presentation.
- Scale ranges (Out Beyond and In Beyond) per label class control text visibility at different zoom thresholds to prevent map clutter.
- Label class priority determines placement precedence when multiple text classes compete for screen space.
4.1 Labeling Basics & SQL Label Classes
Dynamic labeling is the automated placement of descriptive text on a map based on underlying feature attributes. Unlike static graphic text, dynamic labels automatically update, reposition, reorient, and turn on or off as map extent, scale, and attribute data change. In ArcGIS Pro 3.x, dynamic labeling is controlled primarily through the Labeling contextual ribbon tab (which appears when a feature layer is selected in the Contents pane) and the Label Class pane.
Enabling labeling for a feature layer is simple: check the Label checkbox next to the layer name in the Contents pane, or select the layer and click the Label toggle button on the Labeling ribbon tab. By default, ArcGIS Pro creates a single label class named Class 1 for the layer and automatically selects the first suitable string attribute field (or OBJECTID/FID if no string fields exist) as the labeling field.
Selecting Label Fields and Display Attributes
The primary attribute used to label features is selected from the Field drop-down menu on the Labeling ribbon tab or within the Label Class pane under the Label expression section. Map authors can quickly switch between numeric, text, or date fields to alter the displayed information. For basic labeling needs, choosing a single field—such as CITY_NAME, PARCEL_ID, or HIGHWAY_NUM—is sufficient.
However, real-world cartography often demands more nuanced text presentation. While single field selection works for homogeneous datasets, real GIS datasets contain diverse feature attributes requiring customized placement, scale-dependent visibility, and specialized text formatting.
SQL Label Classes: Attribute-Based Labeling
In complex mapping workflows, labeling every feature with the exact same field, font, size, or symbol creates visual clutter and cartographic hierarchy issues. ArcGIS Pro addresses this through Label Classes. A label class allows map authors to divide features in a single vector layer into distinct groups and apply unique labeling rules, placement properties, scale ranges, and symbology to each group.
To create multiple label classes:
- Open the Label Class pane by clicking the Class button on the Labeling ribbon or right-clicking the layer in the Contents pane and selecting Labeling Properties.
- Click the pane options menu (or the dropdown list of classes) and select Create label class.
- Name the new label class logically (e.g.,
Major Cities,State Capitals,Interstate Highways). - Navigate to the SQL Query tab within the Label Class pane to define a SQL query that restricts which features belong to that class.
For example, in a layer containing municipal boundaries, you might establish three label classes based on population:
- Class 1 (Metropolitan Areas): SQL Query:
POPULATION >= 500000. Set font to 14 pt Bold dark gray. - Class 2 (Secondary Cities): SQL Query:
POPULATION >= 100000 AND POPULATION < 500000. Set font to 11 pt Medium gray. - Class 3 (Towns & Villages): SQL Query:
POPULATION < 100000. Set font to 9 pt Regular light gray.
Using SQL queries for label classes ensures that feature geometry is rendered from a single layer source while cartographic text dynamically reflects attribute hierarchy.
Configuring Scale Ranges per Label Class
Map scale heavily influences label legibility. Displaying labels for minor roads or small land parcels at a statewide map scale causes label overlap, rendering the map unreadable. While scale ranges can be applied to an entire feature layer, ArcGIS Pro permits setting independent scale ranges per label class.
Within the Label Class pane under the Class tab, map authors can set:
- Out Beyond (Minimum Scale): The smallest scale (furthest zoomed out) at which labels for the class will appear. For instance, setting Out Beyond to
1:50,000hides minor local street labels when zoomed out beyond 1:50,000 scale. - In Beyond (Maximum Scale): The largest scale (furthest zoomed in) at which labels will display. This is useful when high-level region labels should disappear once a user zooms in close enough to view detailed local parcel labels.
By combining SQL queries with scale ranges across multiple label classes, cartographers build responsive, multi-scale maps. As a user zooms in from a national view down to a neighborhood level, major city labels remain visible, secondary city labels appear at intermediate scales, and local street labels populate only at close-up extents.
Managing and Prioritizing Label Classes
ArcGIS Pro provides complete control over turning individual label classes on or off without altering layer visibility. Within the Contents pane (when switched to the List By Labeling view) or inside the Label Class pane, each label class features a checkbox. Unchecking a class temporarily suppresses its text generation while keeping other classes active.
Furthermore, label classes operate under a strict execution hierarchy. When Maplex or the standard label engine resolves placement conflicts across overlapping label classes:
- Label classes higher in the class priority list receive first placement preference.
- If spatial conflicts arise between
Major CitiesandTowns, the higher-priority class places its labels first, while lower-priority class labels may be displaced, stacked, or unplaced depending on conflict resolution rules.
SQL Label Class Operations Reference
The following summary table compares key parameters and configurations when establishing SQL label classes in ArcGIS Pro:
| Configuration Parameter | Location in ArcGIS Pro | Primary Purpose | Cartographic Impact |
|---|---|---|---|
| Label Class Creation | Label Class Pane -> Class Menu | Generates a distinct labeling rule set within a layer | Allows multi-tiered text presentation from one dataset |
| SQL Clause / Query | Label Class Pane -> SQL Query Tab | Filters layer features using SQL expressions (e.g., TYPE = 'Interstate') | Isolates specific attribute subsets for targeted labeling |
| Out Beyond (Min Scale) | Labeling Ribbon / Class Tab | Defines maximum zoomed-out scale boundary | Prevents map clutter by suppressing detailed labels at small scales |
| In Beyond (Max Scale) | Labeling Ribbon / Class Tab | Defines maximum zoomed-in scale boundary | Hides high-level summary text when viewing detailed features |
| Class Priority List | Label Class Pane -> Label Priority | Ranks placement precedence among competing classes | Ensures critical features are labeled prior to background features |
When configuring a vector layer with a single source dataset in ArcGIS Pro, how can a cartographer label features with different font sizes and scale visibility based on feature attribute values?
What is the function of setting the 'Out Beyond' scale parameter for an individual label class?
If two label classes within the same layer attempt to place labels in the same location, how does ArcGIS Pro resolve placement priority?