Efficient point-in-polygon indexing technique for facilitating geofencing operations
First Claim
1. A computer-implemented method for performing a geofencing operation, comprising:
- obtaining a set of polygons that define a set of geographic regions, wherein each polygon comprises line segments that define a border of the polygon, and wherein each line segment is defined by coordinates for two endpoints of the line segment;
projecting rays from the endpoints of the line segments of the set of polygons onto a reference line separate from the line segments of the set of polygons, wherein the rays are projected in a direction orthogonal to the reference line to form intersection points with the reference line, and storing the intersection points in an index;
for each interval between pairs of consecutive intersection points on the reference line, keeping track in the index of open line segments that project onto the interval;
for a data point to be processed that specifies a position of a location-aware device, identifying a relevant interval on the reference line that the data point projects onto;
performing a crossing number (CN) operation by counting intersections between a ray projected from the data point and open line segments, the number of intersections being determined using the open line segments stored in the index and associated with the relevant interval, to identify zero or more polygons that the data point falls into; and
performing a geofencing operation for the location-aware device based on the identified zero or more polygons that the data point falls into.
1 Assignment
0 Petitions
Accused Products
Abstract
A system that facilitates a geofencing operation is disclosed. The system obtains polygons that define a set of geographic regions. Then, the system projects rays from endpoints of the line segments that define the polygons onto a reference line to form intersection points. For each interval between pairs of consecutive intersection points on the reference line, the system keeps track of open line segments that project onto the interval. For each data point in a set of data points, the system identifies a relevant interval on the reference line that the data point projects onto, and performs a crossing number operation to identify polygons that the data point falls into, and the system increments a count for each polygon that the data point falls into. Finally, the system performs a geofencing operation for the location-aware device based on the identified polygons that the data point falls into.
-
Citations
30 Claims
-
1. A computer-implemented method for performing a geofencing operation, comprising:
-
obtaining a set of polygons that define a set of geographic regions, wherein each polygon comprises line segments that define a border of the polygon, and wherein each line segment is defined by coordinates for two endpoints of the line segment; projecting rays from the endpoints of the line segments of the set of polygons onto a reference line separate from the line segments of the set of polygons, wherein the rays are projected in a direction orthogonal to the reference line to form intersection points with the reference line, and storing the intersection points in an index; for each interval between pairs of consecutive intersection points on the reference line, keeping track in the index of open line segments that project onto the interval; for a data point to be processed that specifies a position of a location-aware device, identifying a relevant interval on the reference line that the data point projects onto; performing a crossing number (CN) operation by counting intersections between a ray projected from the data point and open line segments, the number of intersections being determined using the open line segments stored in the index and associated with the relevant interval, to identify zero or more polygons that the data point falls into; and performing a geofencing operation for the location-aware device based on the identified zero or more polygons that the data point falls into. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for performing a geofencing operation, the method comprising;
-
obtaining a set of polygons that define a set of geographic regions, wherein each polygon comprises line segments that define a border of the polygon, and wherein each line segment is defined by coordinates for two endpoints of the line segment; projecting rays from the endpoints of the line segments of the set of polygons onto a reference line separate from the line segments of the set of polygons, wherein the rays are projected in a direction orthogonal to the reference line to form intersection points with the reference line, and storing the intersection points in an index; for each interval between pairs of consecutive intersections points on the reference like, keeping track in the index of open line segments that project onto the interval; for a data point to be processed that specifies a position of a location-aware device, identifying a relevant interval on the reference line that the data point projects onto; performing a crossing number (CN) operation by counting intersections between a ray projected from the data point and open line segments, the number of intersections being determined using the open line segments stored in the index and associated with the relevant interval, to identify zero or more polygons that the data point falls into; and performing a geofencing operation for the location-aware device based on the identified zero or more polygons that the data point falls into. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system that performs a geofencing operation, comprising:
-
at least one processor and at least one associated memory; and a geofencing mechanism that executes on the at least one processor and is configured to; obtain a set of polygons that define a set of geographic regions, wherein each polygon comprises line segments that define a border of the polygon, and wherein each line segment is defined by coordinates for two endpoints of the line segment; project rays from the endpoints of the line segments of the set of polygons onto a reference line separate from the line segments of the set of polygons, wherein the rays are projected in a direction orthogonal to the reference line to form intersection points with the reference line, and store the intersection points in an index; for each interval between pairs of consecutive intersection points on the reference line, keep track in the index of open line segments that project onto the interval; for a data point to be processed that specifies a position of a location-aware device, identifying a relevant interval on the reference line that the data point projects onto; perform a crossing number (CN) operation by counting intersections between a ray projected from the data point and open line segments, the number of intersections being determined using the open line segments stored in the index and associated with the relevant interval, to identify zero or more polygons that the data point falls into; and perform a geofencing operation for the location-aware device based on the identified zero or more polygons that the data point falls into. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification