5

I need to design a dynamic label in ArcMap that changes its entire style after a certain zoom extent. The research I've done suggests to me that there is currently no way to use VBscript to manipulate certain label stylings. I haven't discovered a way to, for instance, programatically add a callout box and a label offset after I zoom out past 1:150. Below are two label styles I'd like to fuse together into one dynamic style.

Zoomed in past 1:150, and then zoomed out past 1:150:

Zoomed in past 1:150

Zoomed out past 1:150

Will this only be doable in Python?

3
  • 1
    Python cannot do it. Only ArcObjects using Visual Studio or the Express version can do this dynamically. But why not just create two layers that are scale dependent. Or else use Label Classes. desktop.arcgis.com/en/arcmap/10.3/map/working-with-text/… May 16, 2016 at 17:41
  • 1
    Actually Python can't deal with layer symbology. It can deal with Label Classes. Label classes avoid the need to program anything to respond to scale changes once they are set up, so be sure to look at that regardless. Here is the Python help on label classes: pro.arcgis.com/en/pro-app/arcpy/mapping/labelclass-class.htm May 16, 2016 at 17:49
  • @RichardFairhurst thanks for your thoughts, however I have figured out how to do it graphically, all in the ArcMap UI. See my answer below.
    – Alex92
    May 16, 2016 at 18:03

1 Answer 1

6

Just figured it out.

In the layer properties, go to the "Labels" tab, and set the Method to "Define classes of features and label each class differently". I set two different classes ("Default" and "2"), each with a different style and scale range. the label now changes its style according to scale range. enter image description here

enter image description here

1
  • 1
    +1 was just going to give the same answer. A tip though - name your class clearly, such as Up to 150 and 150+ or something else that makes sense to you.
    – Midavalo
    May 16, 2016 at 18:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.