# US 12,004,041 B1 · Systems and methods for processing geographical zones

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,004,041 B1
- Document ID: US12004041B1
- Status: Granted
- Kind: B1
- Application number: 18/390,129
- Filed: 2023-12-20
- Granted: 2024-06-04
- Earliest claimed: 2023-01-20
- Assignees: Geotab Inc.
- Applicants: Geotab Inc.
- Inventors: Michael Scott
- Web page: https://patentgrep.com/patent/US12004041B1

## CPC

- H04W 4/021: Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
- G08G 1/207: {with respect to certain areas, e.g. forbidden or allowed areas with possible alerting when inside or outside boundaries}
- H04W 4/029: Location-based management or tracking services
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- G08G: TRAFFIC CONTROL SYSTEMS (guiding railway traffic, ensuring the safety of railway traffic B61L; arrangement of road signs or traffic signals E01F9/00; radar or analogous systems, sonar systems, lidar systems specially adapted for traffic control G01S13/91, G01S15/88, G01S17/88; {radar or analogous systems, sonar systems, lidar systems specially adapted for anti-collision purposes G01S13/93, G01S15/93, G01S17/93})

## Abstract

Systems and methods for processing geographical zones are provided. The method involves operating at least one processor to: define a bounding box surrounding a geographical zone; iteratively partition the bounding box into a plurality of bounding boxes by, starting with the bounding box in the first iteration: determine whether the bounding box contains more than a predetermined maximum number of vertices; divide the bounding box into two additional bounding boxes if the bounding box contains more than the predetermined maximum number of vertices, repeat the steps of determining and dividing the bounding box for the additional bounding boxes in the next iteration until each additional bounding box does not contain more than the predetermined maximum number of vertices; generate a binary tree data structure representing the geographical zone; search the binary tree data structure to determine whether a vehicle is located within one of the bounding boxes.

## Claims

### Claim 1

A system for determining whether a vehicle is located within a geographical zone, the system comprising:
at least one data store operable to store the geographical zone; and
at least one processor in communication with the at least one data store, the at least one processor operable to:
define a bounding box surrounding the geographical zone;
iteratively partition the bounding box into a plurality of bounding boxes by, starting with the bounding box in the first iteration:
determine whether the bounding box contains more than a predetermined maximum number of vertices;
divide the bounding box into two additional bounding boxes if the bounding box contains more than the predetermined maximum number of vertices, the bounding box being divided along an axis that is parallel to: i.) a transverse axis of the bounding box if the length of the bounding box is larger than the width of the bounding box, or ii.) a longitudinal axis of the bounding box if the width of the bounding box is larger than the length of the bounding box; and
repeat the steps of determining and dividing the bounding box for the additional bounding boxes in the next iteration until each additional bounding box does not contain more than the predetermined maximum number of vertices;
generate a binary tree data structure representing the geographical zone, the binary tree data structure comprising a plurality of parent nodes connected to a plurality of end nodes, each parent node representing a division of one of the bounding boxes into two additional bounding boxes, each end node representing one of the bounding boxes in the plurality of bounding boxes;
identify the location of the vehicle based on telematics data received from a telematics device installed in the vehicle; and
search the binary tree data structure using the location of the vehicle to determine whether the vehicle is located within one of the bounding boxes in the plurality of bounding boxes.

### Claim 2 (depends on 1)

The system of claim 1, wherein searching the binary tree data structure comprises:
evaluating a parent node by determining which of the two bounding boxes associated with the division represented by the parent node the vehicle is located.

### Claim 3 (depends on 1)

The system of claim 1, wherein:
at least one bounding box in the plurality of bounding boxes contains a portion of the geographical zone; and
each end node associated with each bounding box in the at least one bounding box further represents the portion of the geographical zone.

### Claim 4 (depends on 3)

The system of claim 3, wherein searching the binary tree data structure comprises:
determining whether the vehicle is located within the portion of the geographical zone represented by one of the end nodes using a point in polygon test.

### Claim 5 (depends on 3)

The system of claim 3, wherein searching the binary tree data structure comprises:
determining that the portion of the geographical zone represented by one of the end nodes occupies the entire bounding box represented by that end node.

### Claim 6 (depends on 1)

The system of claim 1, wherein:
at least one bounding box in the plurality of bounding boxes does not contain a portion of the geographical zone.

### Claim 7 (depends on 1)

The system of claim 1, wherein dividing the bounding box comprises positioning the axis to minimize empty space in one of the two additional bounding boxes.

### Claim 8 (depends on 1)

The system of claim 1, wherein dividing the bounding box comprises positioning the axis so that each of the additional bounding boxes contains a predetermined minimum number of vertices.

### Claim 9 (depends on 1)

The system of claim 1, wherein dividing the bounding box comprises positioning the axis at: i.) half the width of bounding box if the length of the bounding box is larger than the width of the bounding box, or ii.) half the length of the bounding box if the width of the bounding box is larger than the length of the bounding box.

### Claim 10 (depends on 1)

The system of claim 1, wherein the at least one processor is remotely located from the telematics device and the vehicle.

### Claim 11

A method for determining whether a vehicle is located within a geographical zone, the method comprising operating at least one processor to:
define a bounding box surrounding the geographical zone;
iteratively partition the bounding box into a plurality of bounding boxes by, starting with the bounding box in the first iteration:
determine whether the bounding box contains more than a predetermined maximum number of vertices;
divide the bounding box into two additional bounding boxes if the bounding box contains more than the predetermined maximum number of vertices, the bounding box being divided along an axis that is parallel to: i.) a transverse axis of the bounding box if the length of the bounding box is larger than the width of the bounding box, or ii.) a longitudinal axis of the bounding box if the width of the bounding box is larger than the length of the bounding box; and
repeat the steps of determining and dividing the bounding box for the additional bounding boxes in the next iteration until each additional bounding box does not contain more than the predetermined maximum number of vertices;
generate a binary tree data structure representing the geographical zone, the binary tree data structure comprising a plurality of parent nodes connected to a plurality of end nodes, each parent node representing a division of one of the bounding boxes into two additional bounding boxes, each end node representing one of the bounding boxes in the plurality of bounding boxes;
identify the location of the vehicle based on telematics data received from a telematics device installed in the vehicle; and
search the binary tree data structure using the location of the vehicle to determine whether the vehicle is located within one of the bounding boxes in the plurality of bounding boxes.

### Claim 12 (depends on 11)

The method of claim 11, wherein searching the binary tree data structure comprises:
evaluating a parent node by determining which of the two bounding boxes associated with the division represented by the parent node the vehicle is located.

### Claim 13 (depends on 11)

The method of claim 11, wherein:
at least one bounding box in the plurality of bounding boxes contains a portion of the geographical zone; and
each end node associated with each bounding box in the at least one bounding box further represents the portion of the geographical zone.

### Claim 14 (depends on 13)

The method of claim 13, wherein searching the binary tree data structure comprises:
determining whether the vehicle is located within the portion of the geographical zone represented by one of the end nodes using a point in polygon test.

### Claim 15 (depends on 13)

The method of claim 13, wherein searching the binary tree data structure comprises:
determining that the portion of the geographical zone represented by one of the end nodes occupies the entire bounding box represented by that end node.

### Claim 16 (depends on 11)

The method of claim 11, wherein:
at least one bounding box in the plurality of bounding boxes does not contain a portion of the geographical zone.

### Claim 17 (depends on 11)

The method of claim 11, wherein dividing the bounding box comprises positioning the axis to minimize empty space in one of the two additional bounding boxes.

### Claim 18 (depends on 11)

The method of claim 11, wherein dividing the bounding box comprises positioning the axis so that each of the additional bounding boxes contains a predetermined minimum number of vertices.

### Claim 19 (depends on 11)

The method of claim 11, wherein dividing the bounding box comprises positioning the axis at: i.) half the width of bounding box if the length of the bounding box is larger than the width of the bounding box, or ii.) half the length of the bounding box if the width of the bounding box is larger than the length of the bounding box.

### Claim 20 (depends on 11)

The method of claim 11, wherein the at least one processor is remotely located from the telematics device and the vehicle.

### Claim 21

A non-transitory computer readable medium having instructions stored thereon executable by at least one processor to implement the method, the method comprising operating the at least one processor to:
define a bounding box surrounding the geographical zone;
iteratively partition the bounding box into a plurality of bounding boxes by, starting with the bounding box in the first iteration:
determine whether the bounding box contains more than a predetermined maximum number of vertices;
divide the bounding box into two additional bounding boxes if the bounding box contains more than the predetermined maximum number of vertices, the bounding box being divided along an axis that is parallel to: i.) a transverse axis of the bounding box if the length of the bounding box is larger than the width of the bounding box, or ii.) a longitudinal axis of the bounding box if the width of the bounding box is larger than the length of the bounding box; and
repeat the steps of determining and dividing the bounding box for the additional bounding boxes in the next iteration until each additional bounding box does not contain more than the predetermined maximum number of vertices;
generate a binary tree data structure representing the geographical zone, the binary tree data structure comprising a plurality of parent nodes connected to a plurality of end nodes, each parent node representing a division of one of the bounding boxes into two additional bounding boxes, each end node representing one of the bounding boxes in the plurality of bounding boxes;
identify the location of the vehicle based on telematics data received from a telematics device installed in the vehicle; and
search the binary tree data structure using the location of the vehicle to determine whether the vehicle is located within one of the bounding boxes in the plurality of bounding boxes.
