Select to view content in your preferred language

Label Weight Customization

187
0
03-06-2026 05:11 AM
Status: Open
Labels (1)
JonahMiller
Occasional Contributor

Support more customization for label weights. Primary requests at this time:

  • Blocking/tiered weighting defined between specific label classes, not only universally (ie, layer A blocks labels from layer B, but not layer C)
  • Weights based on entire feature layers, in addition to specific label classes
    • Also support weights for group layers
    • (There is a workaround for this already, so it's just a Quality Of Life concept)

Example scenario

  • Fire hydrants, labeled by ID
  • Streets, labeled by street name
  • Parcels, color-coded and not labeled
  • Buildings (polygons on parcels), labeled by street number
  • Points of interest, with labels on features where OWNER = "PUBLIC"

Goals for labeling:

  • No labels can overlap any POI
  • Street labels cannot overlap parcels
  • Building labels must be on buildings, but should not overrun them
  • Fire hydrants may overlap anything besides POI, but should prefer overlapping parcels/buildings over streets
  • POI may overlap anything, but should prefer overlapping streets/buildings over parcels

Given the current label weight configuration, not all of these goals can be achieved easily.

  • To prevent street labels overlapping parcels, parcel weight must be set to 1000 (blocking)
    • If parcels are blocking, buildings cannot be labeled unless they are set to "never remove"
      • If buildings are set to "never remove," they may be forced to overrun their boundaries
  • For hydrants to prefer overlapping parcels/buildings before streets, streets must have a higher weight than parcels and buildings. For POIs to prefer overlapping streets/buildings before parcels, parcels must have a higher weight than streets and buildings.
    • If parcels are already blocking, preferring to overlap streets is not possible
    • We cannot have parcels weighted higher than streets and streets weighted higher than parcels - one must be universally preferred over the other
  • To prevent any labels overlapping POIs, the weight is set to 1000 (blocking)
    • This only affects those with OWNER = "PUBLIC," due to the class definition on the sole label class
      • To block all POIs, you must create a second label class with no definition and no labeling

Proposed solution:

  • Set label weights/blocking criteria per layer, layer group, or group of label classes
  • Configuration for this example: 
    • All features
      • Blocked by all POI
    • POI
      • Streets and buildings weight = 1
      • Parcels weight = 2
    • Hydrants
      • Parcels and buildings weight = 1
      • Streets weight = 2

With this solution:

  • All POI block all labels
  • Streets cannot overlap parcels
  • Buildings can overlap parcels, but still respect their other restrictions (ie no overrun)
  • Hydrants can overlap streets, but prefer to avoid them
  • POIs can overlap parcels, but prefer to avoid them