IP Library Granted Patent US 10,893,379
Granted Patent B2
US 10,893,379 · App. 16/901,043 · Granted Jan 12, 2021

System and method for determining whether an object belongs to a target geo-fence

Inventors: Kehua Sheng (Tianjin, CN); Zhen Zhang (Beijing, CN); Yue Wang (Beijing, CN); Taixu Jiang (Beijing, CN); Quancheng Rao (Beijing, CN)
Assignee: BEIJING DIDI INFINITY TECHNOLOGY AND DEVELOPMENT CO., LTD.
H04W4/022G06F16/29H04W4/029H04W4/35
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,893,379
App. No.
16/901,043
Granted
Jan 12, 2021
Kind
B2
Abstract

Systems and methods for determining whether an object belongs to a target geo-fence are provided. The method may include: obtaining geographic coordinates corresponding to a geographic location of the object; determining information of a grid corresponding to the geographic coordinates; indexing the grid, based on the information of the grid, in a first grid database. The object may not belong to the target geo-fence if the indexed grid is not in the first grid database. The method may further include indexing the grid, based on the information of the grid, in a second grid database if the indexed grid is in the first grid database. The object may belong to the target geo-fence if the indexed grid is not in the second grid database. The method may further include determining whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence if the indexed grid is in the second grid database.

Claims (109)

1. A system for determining whether an object belongs to a target geo-fence, comprising:

at least one storage device including one or more sets of instructions;

at least one processor in communication with the at least one storage device, wherein when executing the one or more sets of instructions, the at least one processor is directed to:

obtain geographic coordinates corresponding to a geographic location of the object;

determine information of a grid corresponding to the geographic coordinates;

index the grid, based on the information of the grid, in a first grid database;

in response to a first negative result that the indexed grid is not in the first grid database:

determine that the object does not belong to the target geo-fence;

in response to a first positive result that the indexed grid is in the first grid database:

index the grid, based on the information of the grid, in a second grid database;

in response to a second negative result that the indexed grid is not in the second grid database:

determine that the object belongs to the target geo-fence; and

in response to a second positive result that the indexed grid is in the second grid database:

determine whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence.

2. The system of claim 1 , wherein the at least one processor is further directed to establish the first grid database, and

wherein to establish the first grid database, the at least one processor is further directed to:

obtain the target geo-fence;

obtain a plurality of grids corresponding to the target geo-fence, each of the plurality of grids including a polygon having a plurality of vertexes;

encode data corresponding to the plurality of grids into a first data structure, which includes identifiers of the plurality of grids and coordinates of the plurality of vertexes; and

write the encoded data in at least one non-transitory storage medium.

3. The system of claim 2 , wherein the at least one processor is further directed to establish the second grid database, and

wherein to establish the second grid database, the at least one processor is further directed to:

obtain one or more border grids from the plurality of grids;

determine one or more local geo-fences based on the one or more border grids and the target geo-fence;

encode data corresponding to the one or more border grids and the one or more local geo-fences into a second data structure, which includes identifiers of the one or more border grids, identifiers of the one or more local geo-fences, coordinates of vertexes of each of the one or more border grids, and coordinates of vertexes of each of the one or more local geo-fences, wherein the vertexes of each of the one or more local geo-fences include one or more intersection points of the border grid and the local geo-fence; and

write the encoded data in the at least one non-transitory storage medium.

4. The system of claim 3 , wherein to determine one or more local geo-fences based on the one or more border grids and the target geo-fence, the at least one processor is directed to:

for each of the one or more border grids,

determine a first linked list corresponding to the border grid and a second linked list corresponding to the target geo-fence respectively, wherein each node of either the first linked list or the second linked list corresponds to one vertex of the vertexes of the border grid or one vertex of the vertexes of the target geo-fence respectively;

determine the one or more of intersection points of the border grid and the target geo-fence;

update the first linked list and the second linked list based on the one or more intersection points; and

determine the one or more local geo-fences based on the updated first linked list and the updated second linked list.

5. The system of claim 4 , wherein to determine the one or more local geo-fences based on the updated first linked list and the updated second linked list, the at least one processor is directed to:

for determining each of the one or more local geo-fences,

traverse the updated first linked list and the updated second linked list based on a predetermined traverse rule;

determine an intersection set of the border grid and the target geo-fence, the intersection set including the one or more intersection points of the border grid and the target geo-fence; and

determine the local geo-fence based on the intersection set.

6. The system of claim 5 , wherein the predetermined traverse rule is associated with a starting point of the traverse, and a traverse sequence or a traverse switching order,

wherein the starting point of the traverse includes the vertex of the border grid that is outside of the target geo-fence or the vertex of the target geo-fence that is outside of the border grid;

the traverse sequence includes a clockwise or a counterclockwise; and

the traverse switching order includes alternate traversing the updated first linked list and the updated second linked list every time encountering an intersection point, excluding a first intersection point encountered.

7. The system of claim 4 , wherein the first linked list and the second linked list are circular doubly linked lists.

8. The system of claim 1 , wherein to determine whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence, the at least one processor is further directed to:

determine that the object belongs to the local geo-fence if a ray, whose endpoint is the object, crosses an odd number of borders of the local geo-fence; and

determine that the object does not belong to the local geo-fence if the ray, whose endpoint is the object, crosses an even number of borders of the local geo-fence.

9. The system of claim 1 , wherein to determine whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence, the at least one processor is further directed to:

determine a winding number associated with the object and the local geo-fence;

determine that the object belongs to the local geo-fence if the winding number is unequal to zero; and

determine that the object does not belong to the local geo-fence if the winding number is equal to zero.

10. The system of claim 1 , wherein the grid has a shape of a regular hexagon.

11. A method for determining whether an object belongs to a target geo-fence, the method implemented on a computing device having at least one processor and at least one computer-readable storage medium, the method comprising:

obtaining geographic coordinates corresponding to a geographic location of the object;

determining information of a grid corresponding to the geographic coordinates;

indexing the grid, based on the information of the grid, in a first grid database;

in response to a first negative result that the indexed grid is not in the first grid database:

determining that the object does not belong to the target geo-fence;

in response to a first positive result that the indexed grid is in the first grid database:

indexing the grid, based on the information of the grid, in a second grid database;

in response to a second negative result that the indexed grid is not in the second grid database:

determining that the object belongs to the target geo-fence; and

in response to a second positive result that the indexed grid is in the second grid database:

determining whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence.

12. The method of claim 11 , wherein the method further comprises establishing the first grid database, and

wherein the establishing the first grid database further comprises:

obtaining the target geo-fence;

obtaining a plurality of grids corresponding to the target geo-fence, each of the plurality of grids including a polygon having a plurality of vertexes;

encoding data corresponding to the plurality of grids into a first data structure, which includes identifiers of the plurality of grids and coordinates of the plurality of vertexes; and

writing the encoded data in at least one non-transitory storage medium.

13. The method of claim 12 , wherein the method further comprises establishing the second grid database, and

wherein the establishing the second grid database further comprises:

obtaining one or more border grids from the plurality of grids;

determining one or more local geo-fences based on the one or more border grids and the target geo-fence;

encoding data corresponding to the one or more border grids and the one or more local geo-fences into a second data structure, which includes identifiers of the one or more border grids, identifiers of the one or more local geo-fences, coordinates of vertexes of each of the one or more border grids, and coordinates of vertexes of each of the one or more local geo-fences, wherein the vertexes of each of the one or more local geo-fences include one or more intersection points of the border grid and the local geo-fence; and

writing the encoded data in the at least one non-transitory storage medium.

14. The method of claim 13 , wherein the determining one or more local geo-fences based on the one or more border grids and the target geo-fence comprises:

for each of the one or more border grids,

determining a first linked list corresponding to the border grid and a second linked list corresponding to the target geo-fence respectively, wherein each node of either the first linked list or the second linked list corresponds to one vertex of the vertexes of the border grid or one vertex of the vertexes of the target geo-fence respectively;

determining the one or more of intersection points of the border grid and the target geo-fence;

updating the first linked list and the second linked list based on the one or more intersection points; and

determining the one or more local geo-fences based on the updated first linked list and the updated second linked list.

15. The method of claim 14 , wherein the determining the one or more local geo-fences based on the updated first linked list and the updated second linked list comprises:

for determining each of the one or more local geo-fences,

traversing the updated first linked list and the updated second linked list based on a predetermined traverse rule;

determining an intersection set of the border grid and the target geo-fence, the intersection set including the one or more intersection points of the border grid and the target geo-fence; and

determining the local geo-fence based on the intersection set.

16. The method of claim 15 , wherein the predetermined traverse rule is associated with a starting point of the traverse, and a traverse sequence or a traverse switching order,

wherein the starting point of the traverse includes the vertex of the border grid that is outside of the target geo-fence or the vertex of the target geo-fence that is outside of the border grid;

the traverse sequence includes a clockwise or a counterclockwise; and

the traverse switching order includes alternate traversing the updated first linked list and the updated second linked list every time encountering an intersection point, excluding a first intersection point encountered.

17. The method of claim 14 , wherein the first linked list and the second linked list are circular doubly linked lists.

18. The method of claim 11 , wherein the determining whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence further comprises:

determining that the object belongs to the local geo-fence if a ray, whose endpoint is the object, crosses an odd number of borders of the local geo-fence; and

determining that the object does not belong to the local geo-fence if the ray, whose endpoint is the object, crosses an even number of borders of the local geo-fence.

19. The method of claim 11 , wherein the determining whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence further comprises:

determining a winding number associated with the object and the local geo-fence;

determining that the object belongs to the local geo-fence if the winding number is unequal to zero; and

determining that the object does not belong to the local geo-fence if the winding number is equal to zero.

20. A non-transitory computer readable medium, comprising at least one set of instructions for determining whether an object belongs to a target geo-fence, wherein when executed by at least one processor of a computing device, the at least one set of instructions causes the computing device to perform a method, the method comprising:

obtaining geographic coordinates corresponding to a geographic location of the object;

determining information of a grid corresponding to the geographic coordinates;

indexing the grid, based on the information of the grid, in a first grid database;

in response to a first negative result that the indexed grid is not in the first grid database:

determining that the object does not belong to the target geo-fence;

in response to a first positive result that the indexed grid is in the first grid database:

indexing the grid, based on the information of the grid, in a second grid database;

in response to a second negative result that the indexed grid is not in the second grid database:

determining that the object belongs to the target geo-fence; and

in response to a second positive result that the indexed grid is in the second grid database:

determining whether the object belongs to the target geo-fence based on a relationship of the object and a local geo-fence, wherein the local geo-fence is a region that a border grid overlaps with the target geo-fence.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2020
From: DIDI (CHINA) SCIENCE AND TECHNOLOGY CO., LTD.
To: BEIJING DIDI INFINITY TECHNOLOGY AND DEVELOPMENT CO., LTD.
Reel/Frame 052957/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2020
From: SHENG, KEHUA
To: DIDI (CHINA) SCIENCE AND TECHNOLOGY CO., LTD.
Reel/Frame 052957/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2020
From: ZHANG, ZHEN; WANG, YUE; JIANG, TAIXU; RAO, QUANCHENG
To: BEIJING DIDI INFINITY TECHNOLOGY AND DEVELOPMENT CO., LTD.
Reel/Frame 052957/0343 →
Priority Claims (1)
CN 2018 1 1435008 · Nov 28, 2018 · national
Continuity (2)
Continuation PCTCN2018118661 · Nov 30, 2018
Related Publication 20200314589A1 · Oct 1, 2020
Cited By (1)
US 12,638,541