Select to view content in your preferred language

Is it possible to have the "label" size change with the polygon size?

6380
6
01-21-2016 09:28 AM
RickCheney
Frequent Contributor

I have a topo map with various polygons representing lakes.  The label applied from the name field of the attribute table is the same size for each lake whether the lake is huge or tiny.  Is it possible to make the label automatically change size to match the polygon?  Maybe the label could be a percentage of the polygon size?

0 Kudos
6 Replies
WesMiller
Deactivated User

You could use Using label classes to label features from the same layer differently—Help | ArcGIS for Desktop to label them differently based on a field. Maybe area field.

RickCheney
Frequent Contributor

Thank you Wes.   As a test, I set the labels for the Lakes as  Label all features the same way, the I added the expression below.  The expression verifies as ok, but nothing happens.  I have a Field named PARENTID and the data type is Long.  All the PARENTID fields in the attribute table have a value of 0 (zero).  I tried the expression without the cLng, like this

" if ([PARENTID] = 0) then"     but that didn't help either.

Function FindLabel ( [PARENTID] )

if (cLng([PARENTID]) = 0) then

FindLabel = "<CLR red='255'><FNT size = '44'>" + [OFFICIAL_N] + "</FNT></CLR>"

end if

End Function

=== below does work ===

Function FindLabel ( [OFFICIAL_N] )

if [OFFICIAL_N] = "Bee Lake" then

FindLabel = "<CLR red='255'><FNT size = '44'>" + [OFFICIAL_N] + "</FNT></CLR>"

end if

End Function

WesMiller
Deactivated User

See diagram

DarrenWiens2
MVP Honored Contributor

You can do this by setting the label font size to the largest desired size, specifying "Reduce font size", and deselect "Overrun feature".

ChadKopplin
Frequent Contributor

I use this method when I display large amounts of parcels as well.  Remember you have to use the Maplex Labeling Engine to use these tools.  Also, this will slow down your labeling and display, because of the crunching to fit the labels.

RickCheney
Frequent Contributor

I used the Reduce font size option in the Maplex Labeling Engine and the results are exactly what I need.  This saved me from individually making custom labels for hundreds of lakes.

Is it possible to mark more than one answer as the correct answer?  All three answers were very helpful.  I will use the Define Classses feature to write Expressions for custom labels when I need that.  I was not aware that I could use Expressions like that.

The Reduce font size option was perfect but I did not know that the Maplex Labeling Engine existed so I would have had a hard time figuring that out until Chad mentioned Maplex and then I found it.  In ArcMap 10.3.1 I found it under the drop-down menus along the top, Customize >> Toolbars >> Labeling  then under the Labeling drop-down on the left side of the Labeling toolbar, pick Use Maplex Label Engine.

Thank you all, you saved me a lot of time.