Patent Document ID: 20150261833
Application ID: 14215238
Patent Status: 0

Claim One:
1. A method implemented by a computer for determining for a set of co-ordinate records the numbers of records associated with co-ordinates within a query area, comprising: storing data representing a binary tree comprising leaf nodes, a root node and branch nodes wherein the leaf nodes are associated with individual items of co-ordinate data identified by the set of co-ordinate records, and the root node and branch nodes are each associated with a pair of child nodes, and are each associated with split values; receiving a query identifying a query area; selecting the root node as the first node to be processed; recursively: determining if the current node being processed corresponds to a leaf node and if so determining whether the item of co-ordinate data associated with the current node is within the query area and, if so, incrementing the number of incidents identified as being within the query area by a value corresponding to the number of incidents associated with the leaf node; if the current node being processed is not a leaf node, determining the extent to which a bounding box associated with the node intersects with the query area wherein the bounding box associated with the root node identifies an area bounding all of the co-ordinates identified by the individual items of co-ordinate data; if the bounding box associated with the current node being processed is entirely contained entirely within the query area, increasing the number of incidents identified as being within the query area by a value corresponding to a determined number of incidents associated with the current node; if the bounding box associated with the current node partially intersects the query area, scheduling the child nodes of the current node as nodes for processing and associating the child nodes with a bounding box wherein the bounding boxes associated with the child nodes correspond to the bounding box of the current node being processed divided into two parts on the basis of the split value associated with the current node; and outputting the accumulated number of incidents as the number of records associated with co-ordinates within the query area when all scheduled nodes have been processed.