Labeling photo bearings
The problem – portray photo point locations, the compass bearing on which the picture was taken, and label the photo ID. The tools – ArcMap 10.1 and maplex.
This turned out to be a fun challenge. The data used here are field collected photo points with attributes for photo ID and photo bearing in the dataset. I ended up using a simple black black circle marker to portray the point where the photo was taken, the bearings of the photo are symbolized with an arrow label leader and the label itself contains the ID. Here’s what it looks like.
The point symbol itself is a simple black circle marker at 4pt. To format the label, I need to portray the compass bearing, or the direction the photo was taken. I have the angle corresponding to the photo bearing along with the photo ID in the attribute table and each each is needed to set up the label as shown above.
In the label settings, I’ll use the photo ID for the text string shown at each photo point. The behavior of arrow leader is controlled through both the symbol settings and the label placement settings. In the symbol editor, click Edit Symbol and navigate to the text background setup (Advanced Text tab>check Text Background and click Properties) and choose the Line Callout type. Uncheck the accent line and leave the Border and leader checked.
Click background and set the fill to light grey 10% and the stroke to 0.25pt black.
Escape back to the editor and adjust the margins to give the text a tighter margin; 1pt top and bottom, 2pt left and right. Set the gap to 2pt and the leader tolerance to 2pt, this will force the leader to appear as soon as the label offset reaches 2pt.
To set up the arrow leader go into the leader properties by clicking Symbol under Leader. Edit the line symbol, choose cartographic line and set a 0.5pt black line.
Now go to the decorations tab and choose the second radio.
Click Properties, then click Symbol. Now edit the black arrow symbol. Adjust the arrow dimension ratio to achieve your desired appearance, I’ve set the width to 4 and the length to 6.
Escape back to the Symbol Selector (by clicking OK, a bunch of times) and ensure the arrow is pointing at the label. This will create the visual effect of an arrow emanating from the photo point in the direction the photo was taken.
If the arrow is not pointing at the label, go back into the leader symbol properties and switch the origin of the line decoration. Escape back to the symbol properties and the arrow should be pointing at the label.
Now escape back to the map and examine the results.
The arrow leader needs a bit more room, I need to bold the font, point the arrow the right way, and ensure all my points are being labeled. Go into the label placement properties for the photo points. In the Label Position tab change the offset preferences to 20pt preferred offset, the max offset to 200%, and check measure offset from feature geometry.
Ensure that the the label position is set to best position.
The next step is to set up the label angle by attribute. Check the rotate by attribute button then click Options. Set the rotation to the bearing field (SymAngle in the example) or the field which contains the rotation angle for your point’s label. Set the Rotation Type to geographic as the photo bearings reflect compass bearings, where due north is 0°. Now set the Alignment Type to straight and check Keep label upright.
I have experimented with the horizontal placement but that skews the angle of the leader and it will not reflect the exact angle of the photo bearing.
This isn’t quite right, some additional settings are needed to ensure that all the photo points are being labeled, include forcing all the labels to be placed and adding a label buffer. In label Placement Properties, in the Label Density tab, enter 50% for the Label Buffer and check Hard constraint (this is the max).
In the Conflict Resolution tab, check Never remove. Now escape back to the map and every photo bearing will be labeled.
With the label rotation set to the bearing angle and the placement straight, the leader with arrow head will be pointing at the exact angle of the bearing angle in the attribute table. Just past the arrow head will be the photo ID label also oriented in the direction of the bearing.
One thing I haven’t tried is using two instances of the photo points to achieve an arrow leader at the proper bearing along with a horizontal label. It’s likely possible but it’s also probably tricky to set up properly.