I'm using ArcMap 10.3, and I have several lines, that I would like to add arrows along at a defined interval, with that lines rotation, so the arrows point correct way along the line.

When I use the construct point (while having a line marked) I can get points at a defined interval for one line at a time, but it does not rotate according to the line direction. The funny thing is, it pretty much shows a preview, when you use this tool, with exactly the type of points I want (maybe a different arrow type), question is, how do I get it as shown on the picture below?

So to sum up, I would like to add points (in the shape of arrows) along a line, with the arrows pointing in the line direction.

What I want

Tried what is suggested at: Unable to rotate Marker Line Symbols

However this gives the difference, that smaller lines will have perhaps 5 markers on a line of 100 meters, but a line of 10000 meters will also have 5, so the interval is not ~ close to each other.

1 Answer 1


The line shown below drawn using @Richard Fairhurst solution for my question

Line symbology

Alternatively use workflow below, to assign correct bearing to your points, called “chainage”.

arcpy.CalculateField_management("chainage", "IDFIELD", "[FID]")
arcpy.Buffer_analysis("chainage", "D:/Scratch/buffers.shp","5 Meters")
arcpy.Intersect_analysis("LINE #;buffers #", "D:/Scratch/directions.shp", "ALL")

Note that my line(s) layer called LINE. At this stage you can use “directions” with arrow-right symbol:


If you insist on points, calculate “directions” bearing:

arcpy.AddGeometryAttributes_management("directions", Geometry_Properties="LINE_BEARING")

Transfer bearing to chainage points using common “IDFIELD” and apply rotation to point symbol:

Symbol Point Symbol

Solution assumes you know how to place points at regular interval.

You might experiment with distance between points and buffer size and smoothed version of your line. In above example I placed points at 100m interval and used 5m buffer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.