It's possible to find "average" line(s) of input vector map in GRASS. It might be useful for averaging multiple GPS tracks of the same road (for example, with OpenStreetMap data).
Shell script to do the task: v.to.averline.
It works with simple algorithm stated here (2 methods -- average distance to vectors sampling or average number of vectors segments).
Results differ depending on vector type: lines/boundaries or polygons. NOTE: Lines/boundaries must have the same direction.