IP Library Granted Patent US 9,753,965
Granted Patent B2
US 9,753,965 · App. 14/214,296 · Granted Sep 5, 2017

Apparatus, systems, and methods for providing location information

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 9,753,965
App. No.
14/214,296
Granted
Sep 5, 2017
Kind
B2
Abstract

The disclosed apparatus, systems, and methods relate to a location query mechanism that can efficiently determine whether a target entity is located within a region of interest (ROI). At a high level, the location query mechanism can be configured to represent a ROI using one or more polygons. The location query mechanism can, in turn, divide (e.g., tessellate) the one or more polygons into sub-polygons. Subsequently, the location query mechanism can use the sub-polygons to build an index system that can efficiently determine whether a particular location is within any of the sub-polygons. Therefore, when a computing device queries whether a particular location is within the region of interest, the location query mechanism can use the index system to determine whether the particular location is within any of the sub-polygons.

Claims (45)

1. An apparatus comprising:

one or more interfaces configured to provide communication with a client device via a communication network;

a memory device to store a hierarchical index system of unique identifiers corresponding to sub-polygons in a region of interest; and

a processor, in communication with the one or more interfaces, to:

process a location query received from the client device, wherein the location query includes a location identifier associated with the client device;

determine a query identifier corresponding to the location identifier;

compare the query identifier with the index system to determine that the location identifier provided by the client device is within the region of interest; and

provide a service associated with the region of interest to the client device over the communication network;

wherein:

the unique identifiers and the query identifier include location identifiers based on a hierarchical encoding scheme, and

the processor is to:

compare one or more bits in the query identifier with bits in the index system to determine that the query identifier is represented in the index system and that the location identifier provided by the client device is within the region of interest, and

compare a first set of bits of the query location identifier, corresponding to a lower-precision sub-polygon, to the index system before comparing a second set of bits of the query location identifier, corresponding to a higher-precision sub-polygon.

2. The apparatus of claim 1 , wherein the index system comprises an index tree, and in response to the first set of bits of the query identifier matches a first index of the index system corresponding to a leaf node of the index tree, the instructions are further executable by the processor to determine whether the query identifier is within the region of interest.

3. The apparatus of claim 1 , wherein the processor is to: process a polygon identifier associated with the query identifier and retrieved from the index system, determine a group identifier associated with the polygon identifier, and provide the service associated with the group identifier to the client device over the communication network.

4. The apparatus of claim 1 , wherein the processor is to: process a polygon identifier associated with the query identifier and retrieved from the index system, and initiate transmission of information associated with the polygon identifier to the client device over the communication network.

5. A method comprising:

process a location query received from a client device via a communication network, wherein the location query includes a location identifier associated with the client device;

determine a query identifier corresponding to the location identifier;

compare the query identifier with a hierarchical index system of unique identifiers corresponding to sub-polygons in a region of interest to determine that the location identifier provided by the client device is within the region of interest;

provide a service associated with the region of interest to the client device via the communication network;

compare one or more bits in the query identifier with bits in the index system to determine that the query identifier is represented in an index system and that the location identifier provided by the client device is within the region of interest; and

compare a first set of bits of the query location identifier, corresponding to a lower-precision sub-polygon, to the index system before comparing a second set of bits of the query location identifier, corresponding to a higher-precision sub-polygon;

wherein the unique identifiers and the query identifier include location identifiers based on a hierarchical encoding scheme.

6. The method of claim 5 , wherein the index system comprises an index tree, and in response determining that the first set of bits of the query identifier matching a first index of the index system corresponding to a leaf node of the index tree, determining whether the query identifier is within the region of interest.

7. The method of claim 5 , further comprising processing a polygon identifier associated with the query identifier and retrieved from the index system, determine a group identifier associated with the polygon identifier, and provide the service associated with the group identifier to the client device over the communication network.

8. The method of claim 5 , further comprising processing a polygon identifier associated with the query identifier and retrieved from the index system, and initiating transmission of information associated with the polygon identifier to the client device over the communication network.

9. A non-transitory computer readable medium having instructions executable by a data processing apparatus to:

process a location query received from a client device via a communication network, wherein the location query includes a location identifier associated with the client device;

determine a query identifier corresponding to the location identifier;

compare the query identifier with a hierarchical index system of unique identifiers corresponding to sub-polygons in a region of interest to determine that the location identifier provided by the client device is within the region of interest;

initiate communication of a service associated with the region of interest to the client device via the communication network;

compare one or more bits in the query identifier with bits in the index system to determine that the query identifier is represented in the index system and that the location identifier provided by the client device is within the region of interest; and

compare a first set of bits of the query location identifier, corresponding to a lower-precision sub-polygon, to the index system before comparing a second set of bits of the query location identifier, corresponding to a higher-precision sub-polygon;

wherein the unique identifiers and the query identifier include location identifiers based on a hierarchical encoding scheme.

10. The non-transitory computer readable medium of claim 9 , wherein the instructions are further executable by a data processing apparatus to:

determine whether the query identifier is within the region of interest in response to determining that the first set of bits of the query identifier matching a first index of the index system corresponding to a leaf node of an index tree, wherein the index system comprises an index tree.

11. The non-transitory computer readable medium of claim 9 , wherein the instructions are further executable by a data processing apparatus to:

process a polygon identifier associated with the query identifier and retrieved from the index system,

determine a group identifier associated with the polygon identifier, and

initiate communication with provide the service associated with the group identifier to the client device over the communication network.

initiate transmission information associated with the polygon identifier to the client device over the communication network.

12. The non-transitory computer readable medium of claim 9 , wherein the instructions are further executable by a data processing apparatus to:

process a polygon identifier associated with the query identifier and retrieved from the index system, and

initiate transmission of information associated with the polygon identifier to the client device over the communication network.

Assignments (5)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 52575/0270 Recorded Jul 15, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 060669/0462 →
SECURITY INTEREST Recorded Jul 13, 2022
From: FOURSQUARE LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060649/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2022
From: FACTUAL, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 059977/0688 →
SECURITY INTEREST Recorded May 5, 2020
From: FACTUAL INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 052575/0270 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2016
From: RANA, AHAD; SHIMANOVSKY, BORIS
To: FACTUAL INC.
Reel/Frame 038755/0318 →