IP Library Granted Patent US 9,119,055
Granted Patent B2
US 9,119,055 · App. 13/760,796 · Granted Aug 25, 2015

Grouping ambient-location updates

Inventors: Andrea Vaccari (San Francisco, CA); Gabriel Grisé (San Francisco, CA); Mayank Lahiri (San Francisco, CA)
Assignee: Facebook, Inc.
H04W4/206H04W4/022H04L67/18
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 9,119,055
App. No.
13/760,796
Granted
Aug 25, 2015
Kind
B2
Abstract

In one embodiment, a method includes receiving location data from a mobile device associated with a user. The location data includes one or more location readings sent automatically and without manual input from the user. The method also includes representing the location data as one or more geo-location data points based at least in part on a distance between the location readings and the geo-location data points; and grouping one or more of the geo-location data points into one or more geo-location clusters based at least in part on a distance between each geo-location data point and a geo-location centroid of each geo-location cluster.

Claims (38)

1. A method comprising:

by a computing device, receiving location data from a mobile computing device associated with a user, the location data comprising one or more location readings being sent automatically and without manual input from the user;

by the computing device, representing the location data as one or more geo-location data points based at least in part on a distance between the location readings and the geo-location data points; and

by the computing device, grouping, through a k-means spatial-clustering algorithm, one or more of the geo-location data points into one or more geo-location clusters based at least in part on a distance between each geo-location data point and a geo-location centroid of each geo-location cluster, wherein each geo-location data points is placed with a particular one of the geo-location clusters based at least in part on a distance between the geo-location data point and the geo-location centroid of the particular one of the geo-location clusters being less than a pre-determined threshold value.

2. The method of claim 1 , further comprising:

by the computing device, updating a geo-location of the geo-location centroid of each geo-location cluster based at least in part on determining a center of the geo-location data points within each geo-location cluster; and

by the computing device, re-grouping the geo-location data points into the geo-location clusters based at least in part on the updated geo-location of the geo-location centroid.

3. The method of claim 2 , further comprising by the computing device, performing the updating of the geo-location centroid and the regrouping of the geo-location data points a pre-determined number of times.

4. The method of claim 1 , further comprising by the computing device, updating a geo-location of the geo-location centroid of one or more of the geo-location clusters in response to receiving subsequent location data from the mobile computing device.

5. The method of claim 1 , further comprising by the computing device, adding an additional geo-location data point to a particular one of the geo-location clusters in response to a distance between the subsequent geo-location data point and the geo-location centroid of the particular one of the geo-location clusters being less than a pre-determined threshold value.

6. The method of claim 1 , wherein representing the location data comprises by the computing device, combining consecutive location readings as a single geo-location data point in response to a distance between the consecutive location readings being less than a measurement accuracy of the location data.

7. The method of claim 1 , wherein representing the location data comprises by the computing device, adding an additional geo-location data point in response to a distance between consecutive location readings being more than a measurement accuracy of the location data.

8. One or more computer-readable non-transitory storage media embodying software configured when executed to:

receive location data from a mobile computing device associated with a user, the location data comprising one or more location readings being sent automatically and without manual input from the user;

represent the location data as one or more geo-location data points based at least in part on a distance between consecutive location readings; and

group, through a k-means spatial-clustering algorithm, one or more of the geo-location data points into one or more geo-location clusters based at least in part on a distance between each geo-location data point and a geo-location centroid of each geo-location cluster, wherein each of the geo-location data points is placed with a particular one of the geo-location clusters based at least in part on a distance between the geo-location data point and the geo-location centroid of the particular one of the geo-location clusters being less than a pre-determined threshold value.

9. The media of claim 8 , wherein the software is further configured to:

update a geo-location of the geo-location centroid of each geo-location cluster based at least in part on determining a center of the geo-location data points within each geo-location cluster; and

re-group the geo-location data points into the geo-location clusters based at least in part on the updated geo-location of the geo-location centroid.

10. The media of claim 9 , wherein the software is further configured to perform the updating of the geo-location centroid and the regrouping of the geo-location data points a pre-determined number of times.

11. The media of claim 8 , wherein the software is further configured to update a geo-location of the geo-location centroid of one or more of the geo-location clusters in response to receiving subsequent location data from the mobile computing device.

12. The media of claim 8 , wherein the software is further configured to add an additional geo-location data point to a particular one of the geo-location clusters in response to a distance between the subsequent geo-location data point and the geo-location centroid of the particular one of the geo-location clusters being less than a pre-determined threshold value.

13. The media of claim 8 , wherein the software is further configured to combine consecutive location readings as a single geo-location data point in response to a distance between the consecutive location readings being less than a measurement accuracy of the location data.

14. The media of claim 8 , wherein the software is further configured to add an additional geo-location data point in response to a distance between consecutive location readings being more than a measurement accuracy of the location data.

15. A device comprising:

one or more processors; and

one or more computer-readable non-transitory storage media coupled to the processors and embodying software configured when executed to:

receive location data from a mobile computing device associated with a user, the location data comprising one or more location readings being sent automatically and without manual input from the user;

represent the location data as one or more geo-location data points based at least in part on a distance between consecutive location readings; and

group, through a k-means spatial-clustering algorithm, one or more of the geo-location data points into one or more geo-location clusters based at least in part on a distance between each geo-location data point and a geo-location centroid of each geo-location cluster, wherein each of the geo-location data points is placed with a particular one of the geo-location clusters based at least in part on a distance between the geo-location data point and the geo-location centroid of the particular one of the geo-location clusters being less than a pre-determined threshold value.

16. The device of claim 15 , wherein the software is further configured to:

update a geo-location of the geo-location centroid of each geo-location cluster based at least in part on determining a center of the geo-location data points within each geo-location cluster; and

re-group the geo-location data points into the geo-location clusters based at least in part on the updated geo-location of the geo-location centroid.

17. The device of claim 16 , wherein the software is further configured to perform the updating of the geo-location centroid and the regrouping of the geo-location data points a pre-determined number of times.

18. The device of claim 15 , wherein the software is further configured to update a geo-location of the geo-location centroid of one or more of the geo-location clusters in response to receiving subsequent location data from the mobile computing device.

19. The device of claim 15 , wherein the software is further configured to add an additional geo-location data point to a particular one of the geo-location clusters in response to a distance between the subsequent geo-location data point and the geo-location centroid of the particular one of the geo-location clusters being less than a pre-determined threshold value.

20. The device of claim 15 , wherein the software is further configured to combine consecutive location readings as a single geo-location data point in response to a distance between the consecutive location readings being less than a measurement accuracy of the location data.

21. The device of claim 15 , wherein the software is further configured to add an additional geo-location data point in response to a distance between consecutive location readings being more than a measurement accuracy of the location data.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2013
From: VACCARI, ANDREA; GRISE, GABRIEL; LAHIRI, MAYANK
To: FACEBOOK, INC.
Reel/Frame 030085/0194 →
Continuity (1)
Related Publication 20140221022A1 · Aug 7, 2014