IP Library Granted Patent US 10,240,939
Granted Patent B2
US 10,240,939 · App. 15/693,237 · Granted Mar 26, 2019

Generating user preference activity maps

Inventor: Davis Kitchel (Norwich, VT)
Assignee: Strava, Inc.
G01C21/3461A63B24/0062G01C5/06G01C21/34G01C21/3484G01C21/3667G01S19/13G01S19/19A61B5/024A61B5/1112A61B5/1118A61B2503/10A63B2220/14H04W4/029
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 10,240,939
App. No.
15/693,237
Granted
Mar 26, 2019
Kind
B2
Abstract

Generating user preference activity maps is disclosed, including: collecting a plurality of user activities recorded by a plurality of GPS recording devices; and aggregating the plurality of user activities to a base map to generate a user preference map.

Claims (71)

1. A system, comprising:

a processor configured to:

receive a request to provide a route from a first endpoint to a second endpoint;

receive one or more route preferences;

determine one or more suggested routes using a user preference map, the first endpoint, the second endpoint, and the one or more route preferences;

receive a request to provide a map associated with user activity associated with a specified time frame;

determine the map that includes user activity data that matches the specified time frame; and

present the map that includes the user activity data that matches the specified time frame; and

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

2. The system of claim 1 , wherein the one or more route preferences comprises one or more of the following: a desired distance of the route, a desired surface type associated with the route, a desired elevation associated with the route, a desired degree of popularity associated with the route, a desired power usage associated with the route, a preference for the route to be scenic, and a preference for the route to be a shortest distance route between the first endpoint and the second endpoint.

3. The system of claim 1 , wherein the processor is further configured to generate the user preference map.

4. The system of claim 3 , wherein to generate the user preference map comprises to:

collect a plurality of user activities recorded by a plurality of GPS recording devices, wherein to collect the plurality of user activities comprises to mine user activity data based at least in part on an order associated with a plurality of GPS recording device types; and

generate the user preference map by aggregating the plurality of user activities to a base map.

5. The system of claim 4 , wherein the base map comprises a set of geographical information system (GIS) data.

6. The system of claim 4 , wherein to generate the user preference map by aggregating the plurality of user activities to the base map comprises to:

determine a subset of the plurality of user activities that matches an edge of the base map; and

store metadata associated with the subset of the plurality of user activities that matches the edge of the base map in the user preference map.

7. The system of claim 6 , wherein to determine the subset of the plurality of user activities that matches the edge of the base map comprises to:

generate a respective buffer at each of one or more locations along the edge;

include a first user activity included in the plurality of user activities that matches the respective buffer at each of the one or more locations along the edge in the subset of the plurality of user activities that matches the edge; and

filter out a second user activity included in the subset of the plurality of user activities that matches the edge that comprises non-contiguous points across the respective buffer at each of the one or more locations along the edge.

8. The system of claim 6 , wherein to store the metadata associated with the subset of the plurality of user activities that matches the edge of the base map in the user preference map comprises to:

determine a number of user activities associated with the subset of the plurality of user activities that matches the edge;

determine a first portion of the number of user activities associated with traversal of the edge in a first direction;

determine a first traversal time associated with the first portion of the number of user activities associated with traversal of the edge in the first direction;

determine a second portion of the number of user activities associated with traversal of the edge in a second direction; and

determine a second traversal time associated with the second portion of the number of user activities associated with traversal of the edge in the second direction.

9. The system of claim 6 , wherein to store the metadata associated with the subset of the plurality of user activities that matches the edge of the base map in the user preference map comprises to:

for a user activity included in the subset of the plurality of user activities that matches the edge, determine a start time associated with the user activity and an amount of time elapsed after the start time that the user activity had matched the edge;

for a preset time interval in a preset period, determine one or more user activities of the subset of the plurality of user activities that matches the edge in the preset time interval; and

store metadata associated with the one or more user activities with the preset time interval with respect to the edge in the user preference map.

10. The system of claim 6 , wherein to store the metadata associated with the subset of the plurality of user activities that matches the edge of the base map in the user preference map comprises to:

select a barometric data candidate user activity included in the subset of the plurality of user activities that matches the edge; and

adjust a recorded elevation corresponding to each of at least a subset of a plurality of data points associated with the selected barometric data candidate user activity based at least in part on obtained elevation data associated with the edge.

11. The system of claim 1 , wherein the one or more suggested routes between the first endpoint and the second endpoint are determined by comparing stored metadata corresponding to one or more edges of the user preference map to the one or more route preferences to determine matching edges between the first endpoint and the second endpoint.

12. The system of claim 1 , wherein the processor is further configured to present the one or more suggested routes at a map at a user interface.

13. A method, comprising:

receiving a request to provide a route from a first endpoint to a second endpoint;

receiving one or more route preferences;

determining one or more suggested routes using a user preference map, the first endpoint, the second endpoint, and the one or more route preferences;

receiving a request to provide a map associated with user activity associated with a specified time frame;

determining the map that includes user activity data that matches the specified time frame; and

presenting the map that includes the user activity data that matches the specified time frame.

14. The method of claim 13 , wherein the one or more route preferences comprises one or more of the following: a desired distance of the route, a desired surface type associated with the route, a desired elevation associated with the route, a desired degree of popularity associated with the route, a desired power usage associated with the route, a preference for the route to be scenic, and a preference for the route to be a shortest distance route between the first endpoint and the second endpoint.

15. The method of claim 13 , further comprising generating the user preference map.

16. The method of claim 15 , wherein generating the user preference map comprises:

collecting a plurality of user activities recorded by a plurality of GPS recording devices, wherein collecting the plurality of user activities comprises mining user activity data based at least in part on an order associated with a plurality of GPS recording device types; and

generating the user preference map by aggregating the plurality of user activities to a base map.

17. The method of claim 16 , wherein generating the user preference map by aggregating the plurality of user activities to the base map comprises:

determining a subset of the plurality of user activities that matches an edge of the base map; and

storing metadata associated with the subset of the plurality of user activities that matches the edge of the base map in the user preference map.

18. The method of claim 17 , wherein storing the metadata associated with the subset of the plurality of user activities that matches the edge of the base map in the user preference map comprises:

selecting a barometric data candidate user activity included in the subset of the plurality of user activities that matches the edge; and

adjusting a recorded elevation corresponding to each of at least a subset of a plurality of data points associated with the selected barometric data candidate user activity based at least in part on obtained elevation data associated with the edge.

19. A computer program product, the computer program product comprises a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a request to provide a route from a first endpoint to a second endpoint;

receiving one or more route preferences;

determining one or more suggested routes using a user preference map, the first endpoint, the second endpoint, and the one or more route preferences;

receiving a request to provide a map associated with user activity associated with a specified time frame;

determining the map that includes user activity data that matches the specified time frame; and

presenting the map that includes the user activity data that matches the specified time frame.

20. A system, comprising:

a processor configured to:

receive a request to provide a route from a first endpoint to a second endpoint;

receive one or more route preferences;

generate a user preference map, including to:

collect a plurality of user activities recorded by a plurality of GPS recording devices, wherein to collect the plurality of user activities comprises to mine user activity data based at least in part on an order associated with a plurality of GPS recording device types; and

generate the user preference map by aggregating the plurality of user activities to a base map;

determine one or more suggested routes using the user preference map, the first endpoint, the second endpoint, and the one or more route preferences; and

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

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 (4)
Continuation 15045067 · Feb 16, 2016
Continuation 14564863 · Dec 9, 2014
Provisional Application 61914859 · Dec 11, 2013
Related Publication 20180045524A1 · Feb 15, 2018
Cited By (1)
US 12,656,139