Clone wiki

qgis-plugins / Arrows


The Arrows plugin allows to create polygon arrows based on polylines.

Generated Arrows can be either straight or curved. A curved arrow is drawn when the base polyline has 3 points, these points defining the circle along which the arrow is drawn. Arrows can have one head, two heads or be coupled forward/backward.


To use the plugin you'll need a polyline layer. In the example below there is 2 polylines, one with 2 points and one with three points.


To set the plugin parameters, click Arrows set (on the toolbar img/arrows_set.png or in the plugin menu). You get the following windwow.


First you have to choose the polyline layer on which arrows will be based.

For each polyline object you can generate either only one arrow or two arrows with opposite direction. If you choose the later, tou can specify two different width fields. For the one arrow option you can also generate an arrow with two heads (one on each end).

The width field factor will let you define the ratio between width field value and the arrow width in map units.

The head size can be guessed by the plugin based on the size of all the polylines. You can either click the Guess button or leave the field empty.

The drawing threshold will allow you not to draw arrows if the width field value is below threshold.

The outshape field is where the polygon shapefile will be saved. The file will automatically be added to your project when you click OK. Below is what you get from the example.


The Arrows refresh button img/arrows_rf.png allows to quickly update arrows after edtiting (and saving changes) on the polyline layer. It will keep the parameters. You can change them by clicking again on Arrows set.

Arrows parameters are stored in a .shp.conf file along with the output shapefile. When you select an existing shapefile with an existing config file on the outshape field, you'll be prompted if you want to load the parameters.


All polylines fields will be kept on polygons. Five fields will be added: Label_x, Label_y, Label_ang, Label_h (horizontal alignment) and Lable_v (vertical alignment) that can be used for label positionning. With two points polylines, those will correspond to the middle of the line, when you provide three points, the position correspond to the middle point and the angle will make your label follow nicely the curve of the arrow.