IP Library Granted Patent US 11,727,419
Granted Patent B2
US 11,727,419 · App. 17/701,170 · Granted Aug 15, 2023

Realtime busyness for places

Inventors: Frank Russo (Sunnyvale, CA); Luuk Van Dijk (Zürich, CH); Paul Donnelly (San Jose, CA); Quang Duong (San Francisco, CA); James Aspinall (San Francisco, CA); Finnegan Southey (San Francisco, CA); Steve Chien (San Carlos, CA)
Assignee: Google LLC
G06Q30/0201G06F16/2255
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,727,419
App. No.
17/701,170
Granted
Aug 15, 2023
Kind
B2
Abstract

Real-time busyness information is for a public place is computed in a privacy-sensitive way, and provided for display in relation to historical busyness information. An aggregate amount of real-time location information available for a particular public place is measured ( 410 ), and used to determine ( 420 ) whether the public place is privacy-qualified. If the public place is privacy-qualified, real-time busyness information is computed ( 440 ) for the public place based on the real-time location information. Further, it is determined ( 450 ) whether the computed real-time busyness information is accuracy-qualified, based on a comparison of the real-time busyness information to historical busyness information. If both qualifications are met, the real-time busyness information is output ( 470 ) for display or to another application.

Claims (61)

1. A method, comprising:

receiving, at one or more processors, a request for information about a particular public place;

computing a hash of an identifier uniquely assigned to a user at the particular public place;

setting a threshold number of hash values to be stored in a predetermined portion of a data structure for the particular public place;

determining, with the one or more processors, whether the public place meets a first qualification, the determining comprising determining whether the threshold number of hash values for the public place is reached within a predetermined period of time, thereby minimizing an amount of real-time location information to be stored at any instant in time;

when the public place does not meet the first qualification, reducing an amount of information stored by removing from the predetermined portion of the data structure the stored unique hashes;

when the public place meets the first qualification, generating, with the one or more processors, real-time busyness information for the public place based on the real-time location information; and

providing for display the generated real-time busyness information for the particular public place in response to the request.

2. The method of claim 1 , wherein determining whether the public place meets the first qualification comprises:

computing a hash of an identifier, the identifier uniquely assigned to a user at the particular public place;

counting a number of unique hashes having location data that, within a predetermined period of time, corresponds to the particular public place; and

determining, with the one or more processors, whether a threshold number of unique hashes for the public place are reached within the predetermined period of time.

3. The method of claim 2 , wherein counting the number of unique hashes comprises filling a predetermined portion of a first data structure.

4. The method of claim 3 , wherein the data structure is a first bit vector.

5. The method of claim 1 , wherein generating the real-time busyness information for the public place comprises:

aggregating unique hashes within a second data structure; and

determining, with the one or more processors, a duration of time during which the unique hashes were aggregated.

6. The method of claim 5 , further comprising:

emptying the second data structure each time it is filled; and

counting a number of times the second data structure is emptied.

7. The method of claim 1 , further comprising comparing, over an evaluation period, the generated real-(new) beyond a second threshold;

determining whether the first number of hours is less than a first predetermined percentage of the total open hours in the evaluation period; and

determining whether the second number of hours is greater than a second predetermined percentage of the total open hours in the evaluation period.

8. The method of claim 1 , further comprising providing for display historical busyness information for the public place, the historical information provided in relation to the real-time information.

9. A system, comprising:

a memory; and

one or more processors in communication with the memory, the one or more processors configured to:

receive a request for information about a particular public place;

compute a hash of an identifier uniquely assigned to a user at the particular public place;

set a threshold number of hash values to be stored in a predetermined portion of a data structure for the particular public place;

determine whether the public place meets a first qualification, the determining comprising determining whether the threshold number of hash values for the public place is reached within a predetermined period of time, thereby minimizing an amount of real-time location information to be stored at any instant in time;

when the public place does not meet the first qualification, reduce an amount of information stored by removing from the predetermined portion of the data structure the stored unique hashes;

when the public place meets the first qualification, generate real-time busyness information for the public place based on the real-time location information; and

provide for display the generated real-time busyness information for the particular public place in response to the request.

10. The system of claim 9 , wherein in determining whether the public place meets the first qualification, the one or more processors are configured to:

compute a hash of an identifier, the identifier uniquely assigned to a user at the particular public place;

count a number of unique hashes having location data that, within a predetermined period of time, corresponds to the particular public place; and

determine whether a threshold number of unique hashes for the public place are reached within the predetermined period of time.

11. The system of claim 10 , wherein counting the number of unique hashes comprises filling a predetermined portion of a first data structure.

12. The system of claim 11 , wherein the data structure is a first bit vector.

13. The system of claim 9 , wherein in generating the real-time busyness information for the public place, the one or more processors are further configured to:

aggregate unique hashes within a second data structure; and

determine a duration of time during which the unique hashes were aggregated.

14. The system of claim 13 , wherein the one or more processors are further configured to:

empty the second data structure each time it is filled; and

count a number of times the second data structure is emptied.

15. The system of claim 9 , wherein the one or more processors are further configured to compare, over an evaluation period, the generated real-time busyness information for the public place to historical real-time busyness information for the public place for each hour that the public place was open during the evaluation period.

16. The system of claim 15 , wherein the one or more processors are further configured to:

count a first number of hours that differ beyond a first threshold;

count a second number of hours that match beyond a second threshold;

determine whether the first number of hours is less than a first predetermined percentage of the total open hours in the evaluation period; and

determine whether the second number of hours is greater than a second predetermined percentage of the total open hours in the evaluation period.

17. The system of claim 9 , wherein the one or more processors are further configured to provide for display historical busyness information for the public place, the historical information provided in relation to the real-time information.

18. A non-transitory computer-readable storage medium storing instructions executable by one or more processors for performing a method, comprising:

receiving a request for information about a particular public place;

computing a hash of an identifier uniquely assigned to a user at the particular public place;

setting a threshold number of hash values to be stored in a predetermined portion of a data structure for the particular public place;

determining whether the public place meets a first qualification, the determining comprising determining whether the threshold number of hash values for the public place is reached within a predetermined period of time, thereby minimizing an amount of real-time location information to be stored at any instant in time;

when the public place does not meet the first qualification, reducing an amount of information stored by removing from the predetermined portion of the data structure the stored unique hashes;

when the public place meets the first qualification, generating real-time busyness information for the public place based on the real-time location information; and

providing for display the generated real-time busyness information for the particular public place in response to the request.

Assignments (2)
CHANGE OF NAME Recorded Mar 24, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 059495/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2022
From: RUSSO, FRANK; VAN DIJK, LUUK; DONNELLY, PAUL; DUONG, QUANG; ASPINALL, JAMES; SOUTHEY, FINNEGAN; CHIEN, STEVE
To: GOOGLE INC.
Reel/Frame 059373/0479 →
Continuity (2)
Continuation 16346372
Related Publication 20220215408A1 · Jul 7, 2022