IP Library › Granted Patent US 12,160,787
Granted Patent B2
US 12,160,787 · App. 18/139,712 · Granted Dec 3, 2024

Self-learning network geofences

Inventors: Li Li (Los Altos, CA); Raj Sukumar Chaugule (Santa Clara, CA); En Yang Zhang (Calgary, CA)
Assignee: Apple Inc.
H04W4/022H04B17/327H04B17/336H04W24/10
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 12,160,787
App. No.
18/139,712
Granted
Dec 3, 2024
Kind
B2
Abstract

Disclosed are methods, systems, apparatus, and computer programs for self-learning geofences is disclosed. In one aspect, a method involves gathering a plurality of data points associated with one or more Citizens Broadband Radio Service (CBRS) deployers; determining respective identifiers of the one or more CBRS deployers associated with the plurality of data points; clustering, based on the respective identifiers of the one or more CBRS deployers, the plurality of data points into one or more clusters, where each cluster is associated with one of the one or more CBRS deployers, and where each cluster is associated with a geofence of a network of the one or more CBRS deployers; identifying an opportunity for uploading the one or more clusters to a central server; and uploading the one or more clusters to the central server during the identified opportunity.

Claims (75)

1. One or more processors configured to perform operations comprising:

receiving, from a user device, a request for geofences associated with one or more wireless networks, the request comprising network identifiers of the one or more wireless networks, a desired location, and a geofence count;

identifying a set of geofences associated with the network identifiers;

generating a geometric shape around the desired location on a map, wherein at least a subset of the set of geofences is encompassed within the geometric shape;

comparing the geofence count to a first number of geofences within the geometric shape; and

if the first number of geofences is equal to the geofence count:

returning the subset of geofences within the geometric shape and a length of the geometric shape to the user device.

2. The one or more processors of claim 1 , wherein the geometric shape is a circle and the length is a radius of the circle, and the operations further comprising:

if the first number of geofences is less than the geofence count:

identifying a first geofence outside of the circle that has a center closest to the desired location compared to other geofences outside of the circle;

determining whether a second number of geofences in the circle would be less than or equal to the geofence count if the radius of the circle was expanded to the center of the first geofence; and

if the second number of geofences would be greater than the geofence count, returning the subset of geofences within the circle and the radius of the circle to the user device.

3. The one or more processors of claim 2 , the operations further comprising:

if the second number of geofences would be less than or equal to the geofence count, expanding the radius of the circle to the center of the first geofence.

4. The one or more processors of claim 3 , the operations further comprising:

comparing the second number of geofences to the geofence count; and

in response to determining that the second number of geofences is equal to the geofence count, returning a second subset of geofences within the expanded circle and the expanded radius to the user device.

5. The one or more processors of claim 1 , the operations further comprising:

if the first number of geofences is greater than the geofence count:

identifying a first geofence within the geometric shape that has a center furthest from the desired location of the user device compared to other geofences in the geometric shape;

determining if a distance between the center of the first geofence and the desired location is greater than a predetermined minimum radius; and

if the distance is less than or equal to the predetermined minimum radius, combining two geofences within the geometric shape to create a new geofence that encompasses an area covered by the two geofences.

6. The one or more processors of claim 5 , wherein there is a second number of geofences in the geometric shape after combining the two geofences, and wherein the operations further comprise:

comparing the second number of geofences to the geofence count; and

in response to determining that the second number of geofences is equal to the geofence count, returning a second subset of geofences within the geometric shape and the length of the geometric shape to the user device.

7. The one or more processors of claim 5 , the operations further comprising:

if the distance is greater than the predetermined minimum radius, shrinking the length of the geometric shape to a new length based on the distance between the center of the first geofence and the desired location.

8. The one or more processors of claim 7 , wherein there is a second number of geofences in the geometric shape after shrinking the length, and wherein the operations further comprise:

comparing the second number of geofences to the geofence count; and

in response to determining that the second number of geofences is equal to the geofence count, returning a second subset of geofences within the geometric shape and the new length of the geometric shape to the user device.

9. The one or more processors of claim 1 , wherein the desired location is an approximate location of the user device or an expected location of the user device.

10. A method comprising:

receiving, from a user device, a request for geofences associated with one or more wireless networks, the request comprising network identifiers of the one or more wireless networks, a desired location, and a geofence count;

identifying a set of geofences associated with the network identifiers;

generating a geometric shape around the desired location on a map, wherein at least a subset of the set of geofences is encompassed within the geometric shape;

comparing the geofence count to a first number of geofences within the geometric shape; and

if the first number of geofences is equal to the geofence count:

returning the subset of geofences within the geometric shape and a length of the geometric shape to the user device.

11. The method of claim 10 , wherein the geometric shape is a circle and the length is a radius of the circle, and the method further comprising:

if the first number of geofences is less than the geofence count:

identifying a first geofence outside of the circle that has a center closest to the desired location compared to other geofences outside of the circle;

determining whether a second number of geofences in the circle would be less than or equal to the geofence count if the radius of the circle was expanded to the center of the first geofence; and

if the second number of geofences would be greater than the geofence count, returning the subset of geofences within the circle and the radius of the circle to the user device.

12. The method of claim 11 , the method further comprising:

if the second number of geofences would be less than or equal to the geofence count, expanding the radius of the circle to the center of the first geofence.

13. The method of claim 12 , the method further comprising:

comparing the second number of geofences to the geofence count; and

in response to determining that the second number of geofences is equal to the geofence count, returning a second subset of geofences within the expanded circle and the expanded radius to the user device.

14. The method of claim 10 , the method further comprising:

if the first number of geofences is greater than the geofence count:

identifying a first geofence within the geometric shape that has a center furthest from the desired location of the user device compared to other geofences in the geometric shape;

determining if a distance between the center of the first geofence and the desired location is greater than a predetermined minimum radius; and

if the distance is less than or equal to the predetermined minimum radius, combining two geofences within the geometric shape to create a new geofence that encompasses an area covered by the two geofences.

15. The method of claim 14 , wherein there is a second number of geofences in the geometric shape after combining the two geofences, and wherein the method further comprises:

comparing the second number of geofences to the geofence count; and

in response to determining that the second number of geofences is equal to the geofence count, returning a second subset of geofences within the geometric shape and the length of the geometric shape to the user device.

16. The method of claim 14 , the method further comprising:

if the distance is greater than the predetermined minimum radius, shrinking the length of the geometric shape to a new length based on the distance between the center of the first geofence and the desired location.

17. The method of claim 16 , wherein there is a second number of geofences in the geometric shape after shrinking the length, and wherein the method further comprises:

comparing the second number of geofences to the geofence count; and

in response to determining that the second number of geofences is equal to the geofence count, returning a second subset of geofences within the geometric shape and the new length of the geometric shape to the user device.

18. The method of claim 10 , wherein the desired location is an approximate location of the user device or an expected location of the user device.

19. A system comprising:

one or more processors configured to perform operations comprising:

receiving, from a user device, a request for geofences associated with one or more wireless networks, the request comprising network identifiers of the one or more wireless networks, a desired location, and a geofence count;

identifying a set of geofences associated with the network identifiers;

generating a geometric shape around the desired location on a map, wherein at least a subset of the set of geofences is encompassed within the geometric shape;

comparing the geofence count to a first number of geofences within the geometric shape; and

if the first number of geofences is equal to the geofence count:

returning the subset of geofences within the geometric shape and a length of the geometric shape to the user device.

20. The system of claim 19 , wherein the geometric shape is a circle and the length is a radius of the circle, and the operations further comprising:

if the first number of geofences is less than the geofence count:

identifying a first geofence outside of the circle that has a center closest to the desired location compared to other geofences outside of the circle;

determining whether a second number of geofences in the circle would be less than or equal to the geofence count if the radius of the circle was expanded to the center of the first geofence; and

if the second number of geofences would be greater than the geofence count, returning the subset of geofences within the circle and the radius of the circle to the user device.

Continuity (2)
Continuation 17483785 · Sep 23, 2021
Related Publication 20230269556A1 · Aug 24, 2023