Hi!
I would be very grateful for some help in labelling in layouts in ArcGIS Pro. I am using ArcGIS Pro 3.0.2. I am currently writing a set of reports, which need to be consistent with other reports for the same project a colleague of mine is writing. They have sent me the map image below, which they made in QGIS:
It features an arrow linking the labels to the points they correspond to on the map. Can anyone please show me how to achieve this in Pro?
Many thanks!
Solved! Go to Solution.
To create a label like this in ArcGIS Pro right click on your feature class in the table of contents and select "Labeling Properties", click on symbol and then go down to the callout group (first screen shot) . My approach is to use the 'Background" callout type. In that group you can set the properties of the callout symbol as you want (second screenshot). The key ones are going to be background symbol (usually just a white fill, no outline), leader line symbol (see next paragraph talking about the leader line), leader style (my preference is the 'three point' style), and the margins that dictate how much white space will be around the text of your label (I typically use one or 2 depending on how many labels there are likely to be).
Under the leader line symbol you'll want to pick the 'more line styles' option and then search for 'arrow' under the dialogue that presents itself and pick the one you prefer. One thing you'll probably have to do depending on the line style is change where the arrow symbol appears - ESRI seems to default to the arrow pointing at the label not the feature, which has always seemed backwards to me. So return to the main leader symbol dialogue and go to the 'format line symbol' option and change the 'extremities' value for the arrow part of the symbol to 'at begin' (see 3rd screenshot). Of course you can change any other properties of the leader you want to more closely match the example you provided - line weight, size of the arrow, etc.
If you use dynamic labeling, you may have to fuss with the label offsets and other label rendering properties under the 'position tab' on the properties dialogue. If you convert these to annotation, you can then manually move them around the way that you want them to fit the page, but depending on your workflow and number of features this might be time consuming.
The last screenshot I included shows a label set up as I described above, using 10 points as the minimum offset for the label.
To create a label like this in ArcGIS Pro right click on your feature class in the table of contents and select "Labeling Properties", click on symbol and then go down to the callout group (first screen shot) . My approach is to use the 'Background" callout type. In that group you can set the properties of the callout symbol as you want (second screenshot). The key ones are going to be background symbol (usually just a white fill, no outline), leader line symbol (see next paragraph talking about the leader line), leader style (my preference is the 'three point' style), and the margins that dictate how much white space will be around the text of your label (I typically use one or 2 depending on how many labels there are likely to be).
Under the leader line symbol you'll want to pick the 'more line styles' option and then search for 'arrow' under the dialogue that presents itself and pick the one you prefer. One thing you'll probably have to do depending on the line style is change where the arrow symbol appears - ESRI seems to default to the arrow pointing at the label not the feature, which has always seemed backwards to me. So return to the main leader symbol dialogue and go to the 'format line symbol' option and change the 'extremities' value for the arrow part of the symbol to 'at begin' (see 3rd screenshot). Of course you can change any other properties of the leader you want to more closely match the example you provided - line weight, size of the arrow, etc.
If you use dynamic labeling, you may have to fuss with the label offsets and other label rendering properties under the 'position tab' on the properties dialogue. If you convert these to annotation, you can then manually move them around the way that you want them to fit the page, but depending on your workflow and number of features this might be time consuming.
The last screenshot I included shows a label set up as I described above, using 10 points as the minimum offset for the label.
Amazing, thanks so much for the detailed and helpful reply!
Hi again,
I have a follow-on question which I am hoping it won't be too much to ask... The layout is refusing to display all my labels, which I can't understand as there is ample space to include the labels that are not being placed with an offset callout.
So far I have just been playing around with the 'maximum offset' and 'preferred offset' options, through which I have finally managed to get all the labels to display through trial and error, by setting maximum to 1000% (as high as it will go) and preferred to 40%. The resulting map looks messier than it needs to be, with some of the callout arrows unnecessarily long:
I feel I must be missing some simple trick, a button to press that autofits the offsets to make all the labels display in a reasonable manner. But I can't find anything like that! Surely it must be possible? Any help much appreciated, thanks!
To be honest, fussing with dynamic labels is always a pain - it almost never works as perfect as you will want. I usually work with settings to get it as 'right' as I can, then convert everything to annotation and then move the ones around that aren't going to fit right - just make sure when you convert to annotation you have it create unplaced labels. Make sure you have the maplex label engine checked as that helps a lot if you aren't using it already. And under the Position tab, take a good look at the Fitting Strategy and Conflict resolution. One thing I'd recommend is to always have it show overlapping labels, that way you can see easily where the problems are at. Depending on how crowded your map is within the confines of your layout, there may be no good way around converting to annotation and manually placing labels, but if you can get it 75% right with dynamic options before hand, that helps.