GIS Tips – Creating ArcGIS figures with “Arrow” distance markers

It’s always the simple requests from people which make you scratch your head. In this case, it was a simple question “How do I add distance arrows to ArcGIS?”….this coming from a GIS guy who has used ArcGIS for over 6yrs and was previously employed at Ordnance Survey….

ArcGIS is known for being both simple and technical in equal measure but when it came to adding a “draughtsman” labelling style I couldn’t find one out of the box at all, so walked away saying that I just needed to get a coffee and during that 5 minutes worked out the solution:

In this run through we are going to show the measurement arrows between our points and the woodland. There are 2 ways of getting the measurement (3 but it depends on your level of ArcGIS licence). I am going to assume that this is high-level and we will draw lines for the measurements. You could easily use the spatial join tool or the near tool for more accurate measure, this demo is more to show how to create the symbol & label.

1. Create the lines

Go to the drawing toolbar, select the line tool and draw your lines between the features you wish to measure.

Drawing the Lines
Drawing the Lines

2. Convert the lines to polylines (features)

To create the “length” field which we will use later on in the procedure, we need to convert the drawn lines to features. Select all the lines you wish to use and use the “Convert graphics to features” option on the Drawings toolbar.


3. Start symbolising

Now that you have some line features, we need to turn them into arrows and label them. First click on symbol, then scroll through the symbol selection menu (2) and find the arrow symbol.


Symbolise the features
Symbolise the features
Select the arrow symbol
Select the arrow symbol

4. Enable the labelling.

To make the labelling more elegant, we are going to enable the Maplex labelling which ESRI have now enabled for free in ArcGIS 10 and above. First of all, turn on the labelling tool bar.

Adding the Labelling toolbar
Adding the Labelling toolbar


5. Add and position the labels

First of all go to the properties of the line features and enable labels (1). Then, in the bottom left of the menu, select “Placement Properties”, then select “Position”(2). I am going to assume that you aren’t using straight lines, if you are using straight lines then it won’t matter if you select this option anyway. So, with this in mind, select the “Offset Curved” option(3).

This is where the polyline is useful as you set the field to the “length” field…if using a local coordinate system such as OSGB36 or NAD83, this will be in metres.

Setting up the label position
Setting up the label position

6. Add the unit of measure to the label.

Now, go to the expression tab (I assume you are using metres but feel free to change the “m” to “km” or “Degrees” or whatever the unit of measure is).

In the label expression box, the format for adding text at the end of the field is – [Fieldname]&”TEXT”

Therefore if the fieldname is [Length] and the distance is in metres, then the expression you need is [Length]&”m”

Add the expression
Add the expression


7. Feel smug that its done

Having followed the steps above, the final symbols and labels should look something like the ones below….If you want to get really cool, you can go into the symbol properties and adjust the cartographic line arrow styles or update the expression to show multiple distance formats ([Length]&”m “&[Length]*1000&”km”)

My final map, what does yours look like?
My final map, what does yours look like?


Nick D


  1. I believe you can do the same using New Feature Class, Type Dimension Features, set your reference scale, map units and create your own style. I don’t know if this is available at all license levels though but works with Advanced license

  2. I have a question concerning arrows. It’s not a problem when the center line is really small, but once I want to create a wider line, the arrow won’t stay pointy but have a wider point, due to the fact, that the line ends with the arrow. Is there a way to create some distance between the end of the line and the arrowhead? I’ve been looking for a solution for years and have been working around that by adding graphics later on with a drawing program (which sucks, when you have to change the map…)

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.