Dynamic geohash-based geofencing
AssigneeTwitter, Inc.
InventorsSen Xu, Krishna Kamath
Life of this patent
Estimating the term…
Abstract
A method and system for dynamic geohash-based geofencing within a geographic area including obtaining metadata including a campaign identifier and geometric data, generating a geometry using the geometric data, mapping the geometry to a geohash grid to obtain a first geohash set having a first geohash in the geohash grid, storing the first geohash and the campaign identifier in an entry in a geohash index, obtaining a user position within the geographic area from a mobile device, generating a user geohash using the user position, matching the user geohash to the entry in the geohash index, obtaining the campaign identifier from the entry in the geohash index, and providing content corresponding to the campaign identifier to the mobile device.
Claims18
A method for dynamic geohash-based geofencing within a geographic area, comprising:
- obtaining metadata including a campaign identifier and geometric data;
- generating a geometry using the geometric data;
- mapping the geometry to a geohash grid to obtain a first geohash set including a first geohash in the geohash grid;
- storing the first geohash and the campaign identifier in a first entry in a geohash index, wherein the first entry includes a first key-value pair, wherein the first geohash corresponds to a key in the key-value pair and the campaign identifier corresponds to a value in the first key-value pair;
- obtaining a user position within the geographic area from a mobile device;
- generating a user geohash using the user position;
- looking up, using the user geohash, and finding the first entry in the geohash index, wherein the user geohash matches the first geohash;
- obtaining, in response to the looking up, the campaign identifier from the first entry in the geohash index;
- providing content corresponding to the campaign identifier to the mobile device;
- obtaining new geometric data associated with the campaign identifier;
- looking up, using the new geometric data, a second geohash in the geohash grid;
- storing the second geohash and the campaign identifier in a second entry in the geohash index, wherein the second entry includes a second key-value pair, wherein the second geohash corresponds to a key in the second key-value pair and the campaign identifier corresponds to a value in the second key-value pair;
- and
- removing all entries in the geohash index that include any member of the first geohash set as a key and the campaign identifier as a value.
A system for dynamic geohash-based geofencing within a geographic area, comprising:
- memory;
- and
- a computer processor for executing a dynamic geofencing application stored in memory and causing the computer processor to:
- obtain metadata including a campaign identifier and geometric data;
- generate a geometry using the geometric data;
- map the geometry to a geohash grid to obtain a first geohash set including a first geohash in the geohash grid;
- store the first geohash and the campaign identifier in a first entry in a geohash index, wherein the first entry includes a first key-value pair, wherein the first geohash corresponds to a key in the first key-value pair and the campaign identifier corresponds to a value in the first key-value pair;
- obtain a user position within the geographic area from a mobile device;
- generate a user geohash using the user position;
- look up, using the user geohash, and find the first entry in the geohash index, wherein the user geohash matches the first geohash;
- obtain, in response to the look up, the campaign identifier from the first entry in the geohash index;
- provide content corresponding to the campaign identifier to the mobile device;
- obtain new geometric data associated with the campaign identifier;
- look up, using the new geometric data, a second geohash in the geohash grid;
- store the second geohash and the campaign identifier in a second entry in the geohash index, wherein the second entry includes a second key-value pair, wherein the second geohash corresponds to a key in the second key-value pair and the campaign identifier corresponds to a value in the second key-value pair;
- and
- remove all entries in the geohash index that include any member of the first geohash set as a key and the campaign identifier as a value.
A non-transitory computer readable medium storing instructions for dynamic geohash-based geofencing within a geographic area, the instructions comprising functionality to:
- obtain metadata including a campaign identifier and geometric data;
- generate a geometry using the geometric data;
- map the geometry to a geohash grid to obtain a first geohash set including a first geohash in the geohash grid;
- store the first geohash and the campaign identifier in a first entry in a geohash index, wherein the first entry includes a first key-value pair, wherein the first geohash corresponds to a key in the first key-value pair and the campaign identifier corresponds to a value in the first key-value pair;
- obtain a user position within the geographic area from a mobile device;
- generate a user geohash using the user position;
- look up, using the user geohash, and find the first entry in the geohash index, wherein the user geohash matches the first geohash;
- obtain, in response to the look up, the campaign identifier from the first entry in the geohash index;
- provide content corresponding to the campaign identifier to the mobile device;
- obtain new geometric data associated with the campaign identifier;
- look up, using the new geometric data, a second geohash in the geohash grid;
- store the second geohash and the campaign identifier in a second entry in the geohash index, wherein the second entry includes a second key-value pair, wherein the second geohash corresponds to a key in the second key-value pair and the campaign identifier corresponds to a value in the second key-value pair;
- and
- remove all entries in the geohash index that include any member of the first geohash set as a key and the campaign identifier as a value.
A method for dynamic geohash-based geofencing within a geographic area, comprising:
- obtaining metadata including a subscriber identifier and geometric data;
- generating a geometry using the geometric data;
- mapping the geometry to a geohash grid to obtain a geohash set comprising a first geohash in the geohash grid;
- storing the geohash and the subscriber identifier in an entry in a geohash index, wherein the entry includes a key-value pair, wherein the geohash corresponds to a key in the key-value pair and the subscriber identifier corresponds to a value in the key-value pair;
- obtaining a position of a first mobile device within the geographic area;
- generating a device geohash using the position;
- looking up, using the device geohash, and finding the entry in the geohash index, wherein the device geohash matches the geohash;
- obtaining, in response to the looking up, the subscriber identifier from the entry in the geohash index;
- and
- providing a notification to a second mobile device corresponding to the subscriber identifier.
A method for dynamic geohash-based geofencing, comprising:
- storing a first entry in a geohash index, wherein the first entry includes a first key-value pair, wherein a first geohash in a geohash grid corresponds to a key in the first key-value pair and a campaign identifier corresponds to a value in the first key-value pair;
- generating, using a user position from a mobile device, a user geohash;
- performing a lookup, using the user geohash, and finding the first entry in the geohash index, wherein the user geohash matches the first geohash;
- providing, in response to the lookup, content corresponding to the campaign identifier to the mobile device, wherein the campaign identifier is obtained from the first entry;
- after the providing:
- receiving new geometric data associated with the campaign identifier;
- updating the geohash index in response to receiving the new geometric data, wherein
- updating the geohash index includes:
- storing a second entry in the geohash index, wherein the second entry includes a second key-value pair, wherein a second geohash in the geohash grid corresponds to a key in the second key-value pair and the campaign identifier corresponds to a value in the second key-value pair, wherein the second geohash is determined using the new geometric data;
- and
- removing all entries in the geohash index that include the first geohash.
Dependencies are inferred from the claim text.