A system, comprising: a processor configured to: receive a plurality of GPS recorded activities , wherein a GPS recorded activity is associated with a recorded instance of athletic performance and comprises a plurality of GPS data and corresponding time data; identify a subset of the plurality of GPS recorded activities that is associated with a trail network region ; and generate a trail network map corresponding to the trail network region based at least in part on the subset of the plurality of GPS recorded activities , including to: store data associated with a current network point within the trail network region ; determine a circle around a location that is a predetermined distance away from the current network point at each degree relative to the current network point; for each circle , determine a set of qualifying recorded GPS data points from activity data that intersects the circle ; and determine a plurality of degrees associated with circles with respective sets of qualifying recorded GPS data points that each meets a set of predetermined criteria; and a memory coupled to the processor and configured to provide the processor with instructions. a processor configured to: receive a plurality of GPS recorded activities , wherein a GPS recorded activity is associated with a recorded instance of athletic performance and comprises a plurality of GPS data and corresponding time data; identify a subset of the plurality of GPS recorded activities that is associated with a trail network region ; and generate a trail network map corresponding to the trail network region based at least in part on the subset of the plurality of GPS recorded activities , including to: store data associated with a current network point within the trail network region ; determine a circle around a location that is a predetermined distance away from the current network point at each degree relative to the current network point; for each circle , determine a set of qualifying recorded GPS data points from activity data that intersects the circle ; and determine a plurality of degrees associated with circles with respective sets of qualifying recorded GPS data points that each meets a set of predetermined criteria; and receive a plurality of GPS recorded activities , wherein a GPS recorded activity is associated with a recorded instance of athletic performance and comprises a plurality of GPS data and corresponding time data; identify a subset of the plurality of GPS recorded activities that is associated with a trail network region ; and generate a trail network map corresponding to the trail network region based at least in part on the subset of the plurality of GPS recorded activities , including to: store data associated with a current network point within the trail network region ; determine a circle around a location that is a predetermined distance away from the current network point at each degree relative to the current network point; for each circle , determine a set of qualifying recorded GPS data points from activity data that intersects the circle ; and determine a plurality of degrees associated with circles with respective sets of qualifying recorded GPS data points that each meets a set of predetermined criteria; and store data associated with a current network point within the trail network region ; determine a circle around a location that is a predetermined distance away from the current network point at each degree relative to the current network point; for each circle , determine a set of qualifying recorded GPS data points from activity data that intersects the circle ; and determine a plurality of degrees associated with circles with respective sets of qualifying recorded GPS data points that each meets a set of predetermined criteria; and a memory coupled to the processor and configured to provide the processor with instructions. <EOS>