IP Library Granted Patent US 11,009,362
Granted Patent B2
US 11,009,362 · App. 16/529,657 · Granted May 18, 2021

Generating trail network maps

Inventor: Davis Kitchel (Norwich, VT)
Assignee: Strava, Inc.
G01C21/3484G01C21/20G06F16/285A63B2024/0025A63B2024/0056A63B2024/0071G01C21/32G01S19/14G01S19/19G01S19/39
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,009,362
App. No.
16/529,657
Granted
May 18, 2021
Kind
B2
Abstract

Generating trail network maps, including: receiving a plurality of GPS recorded activities; identifying a subset of the plurality of GPS recorded activities that is associated with a trail network region; and generating 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.

Claims (80)

1. A system, comprising:

a processor configured to:

receive a plurality of Global Position System (GPS) recorded activities;

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, wherein the current network point comprises a determined portion of a branch of the trail network map;

determine a plurality of circles around respective ones of a plurality of locations that is each a predetermined distance away from the current network point in respective directions along a set of degrees relative to the current network point;

for each circle of the plurality of circles, determine a respective set of qualifying recorded GPS data points, from activity data, that are included within that circle;

select a degree associated with a corresponding circle that includes a respective number of qualifying recorded GPS data points that meet a set of predetermined criteria;

determine a next network point in the branch relative to the current network point based at least in part on the selected degree;

determine the branch of the trail network map to include a plurality of network points including at least the current network point and the next network point; and

cause the trail network map to be presented at a user interface; and

a non-transitory memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein the processor is further configured to identify the trail network region, wherein the trail network region comprises an area of geography that is determined to include a trail network.

3. The system of claim 1 , wherein the processor is further configured to:

determine activity data that intersects a plurality of tiles associated with the trail network region, wherein the activity data comprises one or more GPS recorded activities associated with corresponding one or more instances of athletic performance; and

store each GPS data point of at least a subset of GPS data points of the determined activity data with a corresponding set of attributes in a data structure.

4. The system of claim 1 , wherein the processor is further configured to:

determine an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region; and

use the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

5. The system of claim 1 , wherein the processor is further configured to:

determine an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region, including to determine that the initial network point is recorded by a selected type of GPS enabled device; and

use the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

6. The system of claim 1 , wherein the processor is further configured to:

determine an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region, including to determine that at least a threshold number of distinct activities intersect a predetermined area around the initial network point; and

use the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

7. The system of claim 1 , wherein the degree comprises a first degree, and wherein the processor is further configured to:

determine that a second degree of the set of degrees is along a new path;

determine that a new branch of a trail network has been found; and

set a location along the second degree along the new path as a new current network point of the new branch.

8. The system of claim 1 , wherein to generate the trail network map corresponding to the trail network region comprises to:

determine a plurality of linestrings based at least in part on the plurality of network points corresponding to one or more branches of a trail network associated with the trail network region; and

split the plurality of linestrings at branch intersection points.

9. A method, comprising:

receiving a plurality of Global Position System (GPS) recorded activities;

identifying a subset of the plurality of GPS recorded activities that is associated with a trail network region; and

generating 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:

storing data associated with a current network point within the trail network region, wherein the current network point comprises a determined portion of a branch of the trail network map;

determining a plurality of circles around respective ones of a plurality of locations that is each a predetermined distance away from the current network point in respective directions along a set of degrees relative to the current network point;

for each circle of the plurality of circles, determining a respective set of qualifying recorded GPS data points, from activity data, that are included within that circle;

selecting a degree associated with a corresponding circle that includes a respective number of qualifying recorded GPS data points that meet a set of predetermined criteria;

determining a next network point in the branch relative to the current network point based at least in part on the selected degree;

determining the branch of the trail network map to include a plurality of network points including at least the current network point and the next network point; and

causing the trail network map to be presented at a user interface.

10. The method of claim 9 , further comprising:

determining activity data that intersects a plurality of tiles associated with the trail network region, wherein the activity data comprises one or more GPS recorded activities associated with corresponding one or more instances of athletic performance; and

storing each GPS data point of at least a subset of GPS data points of the determined activity data with a corresponding set of attributes in a data structure.

11. The method of claim 9 , further comprising:

determining an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region; and

using the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

12. The method of claim 9 , further comprising:

determining an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region, including determining that the initial network point is recorded by a selected type of GPS enabled device; and

using the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

13. The method of claim 9 , further comprising:

determining an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region, including determining that at least a threshold number of distinct activities intersect a predetermined area around the initial network point; and

using the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

14. The method of claim 9 , wherein the degree comprises a first degree, and further comprising:

determining that a second degree of the set of degrees is along a new path;

determining that a new branch of a trail network has been found; and

setting a location along the second degree along the new path as a new current network point of the new branch.

15. The method of claim 9 , wherein generating the trail network map corresponding to the trail network region comprises:

determining a plurality of linestrings based at least in part on the plurality of network points corresponding to one or more branches of a trail network associated with the trail network region; and

splitting the plurality of linestrings at branch intersection points.

16. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a plurality of Global Position System (GPS) recorded activities;

identifying a subset of the plurality of GPS recorded activities that is associated with a trail network region; and

generating 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:

storing data associated with a current network point within the trail network region, wherein the current network point comprises a determined portion of a branch of the trail network map;

determining a plurality of circles around respective ones of a plurality of locations that is each a predetermined distance away from the current network point in respective directions along a set of degrees relative to the current network point;

for each circle of the plurality of circles, determining a respective set of qualifying recorded GPS data points, from activity data, that are included within that circle;

selecting a degree associated with a corresponding circle that includes a respective number of qualifying recorded GPS data points that meet a set of predetermined criteria;

determining a next network point in the branch relative to the current network point based at least in part on the selected degree;

determining the branch of the trail network map to include a plurality of network points including at least the current network point and the next network point; and

causing the trail network map to be presented at a user interface.

17. The computer program product of claim 16 , further comprising computer instructions for:

determining activity data that intersects a plurality of tiles associated with the trail network region, wherein the activity data comprises one or more GPS recorded activities associated with corresponding one or more instances of athletic performance; and

storing each GPS data point of at least a subset of GPS data points of the determined activity data with a corresponding set of attributes in a data structure.

18. The computer program product of claim 16 , further comprising computer instructions for:

determining an initial network point associated with a trail network associated with the trail network region based at least in part on selecting a recorded GPS data point from activity data that intersects the trail network region; and

using the initial network point and at least a subset of the activity data to recursively determine network points along one or more branches of a trail network.

Assignments (1)
SECURITY INTEREST Recorded Apr 15, 2025
From: STRAVA, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070843/0054 →
Continuity (3)
Continuation 15265403 · Sep 14, 2016
Provisional Application 62219533 · Sep 16, 2015
Related Publication 20190353488A1 · Nov 21, 2019