I'm trying to place a symbol rotated so it abuts and aligns with the border of a polygon, with a label within it that is centered in one part of the symbol. I need it to look like this.
My current solution is to create points symbols approximately where I need them and symbolize them to look like the triangle + circle. then I can calculate the rotation to the nearest polygon boundary and use that angle to rotate the symbol. I can place the text at the center of the circle using the labelling system (since that is the origin of the symbol). This works to a certain extent, but as soon as I change scale, the symbols are no longer abutting the polygon boundaries and I need to go in and manually change their position like below.
I'd like to remove this manual process since there can sometimes be many of these symbols in a map.
I've tried using the labelling system to label the polygon boundaries, and build a composite symbol using the label callout. This also worked to a certain extent, but only for some of the sides of a polygon. It also results in text that is no longer horizontal which is also undesirable. This is the result of my best attempt with this method.
Does anyone have any ideas for how to achieve the labelling I'm looking for?
You could achieve the effect you've described with Symbology, but since the numbers are not technically map labels (just line decorations), other map labels may overlap these "text symbols".
1. Open the Symbology pane for the polygon layer and click the Properties tab > Structure tab (wrench icon).
2. In the Layers section, click Add symbol layer and choose Marker layer.
3. Go to the Layers tab and select the new Shape marker symbol. Configure this to your desired style (black outline with no fill in this case), then configure the Marker Placement settings to offset this circle inside the polygon.
4. Go back to the Structure tab and duplicate the circle symbol layer twice. Next we'll style those to create the text and triangle.
5. Back in the Layers tab, select the middle circle symbol layer and change the Form to the text symbol in the lower left of the menu.
Configure it to your desired font and size. Since you duplicated the circle layer, the position settings will match so the number is in the center of the circle.
6. Select the top-most circle symbol layer and change the Form to the line symbol (left column, 4th row) of the menu.
7. Next to Shape line symbol, click the menu and choose Format line symbol...
8. In the Format Embedded Line Symbol pane that opens, click the Structure tab then Add symbol layer > Fill layer. Delete the Enclosing polygon effect on the new fill layer, delete the default line symbol layer below the new fill layer,.
9. Under the remaining fill layer, click Add effect > Tapered polygon, then click the Layers tab to configure the tapered polygon.
10. Under Tapered polygon effect, change the From width to 1 and the To width to 8 or whatever looks good with your data.
11. Click the back arrow in the pane to return to the line symbol settings. With the triangle shape marker selected, update some placement settings.
12. In order to customize the text inside the circle, go back to the main Symbology settings and Enable symbol property connections on the symbology.
13. Then go back to edit the Shape markers of the polygon symbology and select the text shape marker. There will be a little database icon next to the Text string field - click that and specify which attribute the text will come from, or write an Arcade expression to output the desired text to be placed in the symbol.
The completed polygon symbol will look like this: