Making maps that show flow from place to place

By Charlie Frye, Esri Chief Cartographer

Example of expressive flow arrow in a map made using ArcGIS

We’ve received a few requests this week asking how to use ArcMap to show flow from place to place. The requests ranged from, “What might the data look like?” to “How do I make the flow arrows?” One thing to note, this isn’t a topic that I have much first-hand experience with, but I can certainly get things started with the hopes that others will add their experiences and perhaps, together, we can build a body of knowledge to benefit us all.

The example to the right comes from a map I did a few years ago depicting the Battle of Bunker (Breeds) Hill that occurred early in the American Revolutionary War. The arrows show the lines of approach taken by the British troops in attacking the American positions. I created the arrows manually with the Editor. I mention that because much of the process of making flow maps is not fully automated. So, if you were expecting an “Easy Button”, I’m sorry to report that I have not found it yet.

The data

Flow is based on knowing an origin, destination, and magnitude over a duration of time. The data needs to be designed to store those characteristics, attributes are a good way to store this information. Maps showing flow are typically designed to show notable or significant trends, so data are often summarized by higher order places, like states or countries, so having attributes for that information is also helpful.

Migration, for example, is based on individuals moving from place to place. Many individual moves can be summarized at the city-to-city level, state-to-state level, or country-to-country level. Assigning a time frame for such summarizations is perhaps the most challenging aspect of this problem. Maps that show flow may have different purposes, for example, show the overall trends or show the deviation from the overall trend. Once I had summarized my data to the state, province, or region level, I would sort my data table by destinations to see which are popular, then sort my origins to see where people are leaving.

Others have thought a good deal more about this. One place to learn more is at the Center for Spatially Integrated Social Science (CSISS), where you will find a helpful tool called Tobler’s Flow Mapper.

Another tool in ArcGIS that can help you find the trends from place to place is the Linear Directional Mean tool which uses lines as inputs. The tool analyzes the directions of each line’s endpoints, so two-point lines are the best inputs. You can optionally specify a Case Field, which might represent date ranges, and whether the to-from direction of the line should be analyzed.

The arrows

Quite a few people have asked how to make complex or expressive arrows for maps. I created the example above in ArcMap using the Editor. That means I’m using a polygon feature class for my arrows and, in this case, I am setting that feature class to use a transparency of 65% (Layer Properties, Display tab) so I can see the features behind the arrows on the map. On other maps, I have also used an attribute to denote whether an arrow was in the foreground or is a drop-shadow of a foreground arrow. The drop-shadows are transparent gray and offset, while the foreground arrows are typically more brightly colored. Here’s how I make these arrows:

  1. To construct curves, use the End Point Arc Tool.
  2. To construct straight line segments, use the Sketch Tool
  3. Have snapping on, set to just the vertexes of the arrows feature class.

Here is a step-by-step example:

  1. Construct the butt-end of the arrow line using the End Point Arc Tool.
    Maps Flow Place - Figure 1
  2. Stay with the End Point Arc Tool and add the vertex that will define the end of one of the arrow’s sides. (Given how I started the example, this will be the bottom side.)
    Maps Flow Place - Figure 2
  3. Now add a point that defines the curvature for this side.
    Maps Flow Place - Figure 3
  4. Construct the segments of the arrowhead using the Sketch Tool. It usually takes me several attempts before getting the point and orientation to look graphically balanced—easily the hardest part of this task for me.
    Maps Flow Place - Figure 4
  5. Once the last straight segment is completed, switch to the End Point Arc Tool and click exactly on the first point you added—you will see your polygon’s completion line match up when your cursor is in precisely the right place (shown in pink below).Maps Flow Place - Figure 5
  6. Add the curvature for the second side and finish the sketch.
    Maps Flow Place - Figure 6
This entry was posted in Mapping and tagged , . Bookmark the permalink.

Leave a Reply


  1. MappingCenterTeam says:

    Any plans for ESRI to implement a simple ‘From’ ‘To’ setup with attribute tables, so that we may map a ‘From’ point and have an arrow drawn to a ‘To’ point? Having the ability to choose an arrow type as well (straight, curved, width) would be such an asset to GIS. I’m surprised this hasn’t been developed yet.

    Posted by Brandi Walzer on July 09, 2007 at 11:52 AM PDT 

    I’ve started writing one–I’ve just been swamped. The basic idea is to ask for a table with fields for X1, Y1, X2, and Y2 and construct two point lines from that. Then it’s just a matter of including the other fields. I likely won’t have time to get this done until September, so if anyone wants to beat me to the punch, I’d be happy about it.

    Posted by Charlie Frye on July 09, 2007 at 12:03 PM PDT 

  2. brandiwalzer says:

    Good morning, I just wanted to check up on this and see if there has been any updates on the flow map progress. Thanks! :)

  3. cfrye says:

    Brandi–sorry nothing yet, other than I’m behind on three tools now instead of just one! Thanks for the reminder.