IP Library Granted Patent US 12,346,352
Granted Patent B2
US 12,346,352 · App. 17/527,845 · Granted Jul 1, 2025

Geospatial data analytics and visualization platform

Inventors: Isaac Mehro Brodsky (Burlingame, CA); Shan He (San Francisco, CA); Ib Green (San Carlos, CA); Sina Rassaei Kashuk (San Francisco, CA)
Assignee: FOURSQUARE LABS, INC.
G06F16/29G06F16/248G06F16/285
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 12,346,352
App. No.
17/527,845
Granted
Jul 1, 2025
Kind
B2
Abstract

The disclosure relates to a system and method for facilitating geospatial processing and analysis of datasets and providing a visualization of geospatial analytics data over a network. The platform utilizes a discrete global grid system to partition an area (e.g., a map, a city, a state, a country, a continent, the world, etc.) into a set of discrete grid cells. The set of grid cells can be subdivided into finer resolutions of grids. In examples, the platform generates and employs the use of hex tiles for the grid cells.

Claims (64)

1. A method comprising:

accessing data from one or more datasets;

determining, based upon spatial information associated with the one or more datasets, a first resolution level for a tile, wherein the first resolution level is based upon an altitude of a map view;

encoding the data from the one or more data sets into a first set tiles, wherein the one or more tiles are associated with the first resolution level;

determining whether to generate a second set of tiles, wherein the second set of tiles is associated with a second resolution, wherein the second resolution is different from the first resolution; and

when it is determined to generate the second set of tiles:

grouping data from at least a first tile and a second tile from the first set of tile data;

aggregating the data from the first tile and the second tile; and

encoding the aggregated data in at least a third tile, wherein the second set of tiles comprises the third tile.

2. The method of claim 1 , wherein encoding the data into the first set of tiles comprises generating tile identifiers for the tiles included in the first set of tiles.

3. The method of claim 1 , wherein grouping data from at least the first tile and second tile comprises:

truncating a first tile identifier for the first tile to generate a first truncated identifier;

truncating a second tile identifier for the second tile to generate a second truncated identifier;

comparing the first truncated identifier and second truncated identifier; and

when the first truncated identifier and second truncated identifier are the same, grouping data from the first tile and the second tile.

4. The method of claim 3 , wherein the third tile is associated with a third tile identifier, and wherein the third tile identifier is the same as the first truncated identifier and the second truncated identifier.

5. The method of claim 1 , wherein the first resolution level is based upon a finest level of resolution included in the spatial information.

6. The method of claim 5 , wherein the second resolution level is a coarser resolution level and the first resolution level.

7. The method of claim 6 , further comprising:

determining whether to generate a third set of tiles, wherein the third set of tiles is associated with a third resolution; and

when it is determined to generate the third set of tiles:

grouping data from at least a fourth tile and a fifth tile from the second set of tile data;

aggregating the data from the fourth tile and the fifth tile; and

encoding the aggregated data in at least a sixth tile, wherein the third set of tiles comprises the sixth tile.

8. A method comprising:

accessing one or more datasets;

encoding data from the one or more datasets into a set of hex tiles;

determining a map view;

based upon the map view, loading a subset of hex tiles from the set of hex tiles, wherein the subset of hex tiles corresponds to the map view, wherein loading the subset of hex tiles comprises identifying the subset of hex tiles that corresponds to the map view and a resolution of the map view based upon an altitude of the map view and caching at least a second set of hex tiles that correspond to a different resolution of the current view;

decoding the subset of hex tiles; and

rendering the subset of hex tiles.

9. The method of claim 8 , wherein the subset of hexagonal tiles represents a portion of a discrete global grid system corresponding to the map view.

10. The method of claim 8 , wherein decoding the subset of hex tiles comprises at least one of:

adding grid identifiers to dense tiles in the subset of hex tiles; or

translating between incompatible data formats of the one or more datasets.

11. The method of claim 8 , wherein the subset of hex tiles comprises temporal data encoded in the subset of hex files.

12. The method of claim 11 , wherein rendering the subset of hex tiles comprises generating an animation overlaid on the map view, the animation depicting a change in hex tile data based upon the temporal data encoded in the subset of hex files.

13. The method of claim 8 , wherein rendering the hex tiles comprises causing decoded data from the decoded subset of hex tiles to be overlaid on the map view.

14. A system comprising:

at least one processor; and

memory encoding computer executable instruction that, when executed by the at least one processor, perform a method comprising:

accessing data from one or more datasets;

determining, based upon spatial information associated with the one or more datasets, a first resolution level for a hex tile, wherein the first resolution level is based upon an altitude of a map view;

encoding the data from the one or more data sets into a first set hex tiles, wherein the one or more hex tiles are associated with the first resolution level;

determining whether to generate a second set of hex tiles, wherein the second set of hex tiles is associated with a second resolution, wherein the second resolution is different from the first resolution; and

when it is determined to generate the second set of hex tiles:

grouping data from at least a first hex tile and a second hex tile from the first set of hex tile data;

aggregating the data from the first hex tile and the second hex tile; and

encoding the aggregated data in at least a third hex tile, wherein the second set of hex tiles comprises the third hex tile.

15. The system of claim 14 , wherein encoding the data into the first set of hex tiles comprises generating hex tile identifiers for the hex tiles included in the first set of hex tiles.

16. The system of claim 14 , wherein grouping data from at least the first hex tile and second hex tile comprises:

truncating a first hex tile identifier for the first hex tile to generate a first truncated identifier;

truncating a second hex tile identifier for the second hex tile to generate a second truncated identifier;

comparing the first truncated identifier and second truncated identifier; and

when the first truncated identifier and second truncated identifier are the same, grouping data from the first hex tile and the second hex tile.

17. The system of claim 16 , wherein the third hex tile is associated with a third hex tile identifier, and wherein the third hex tile identifier is the same as the first truncated identifier and the second truncated identifier.

18. The system of claim 14 , wherein the first resolution level is based upon a finest level of resolution included in the spatial information.

19. The system of claim 18 , wherein the second resolution level is a coarser resolution level and the first resolution level.

20. The system of claim 19 , wherein the method further comprises:

determining whether to generate a third set of hex tiles, wherein the third set of hex tiles is associated with a third resolution; and

when it is determined to generate the third set of hex tiles:

grouping data from at least a fourth hex tile and a fifth hex tile from the second set of hex tile data;

aggregating the data from the fourth hex tile and the fifth hex tile; and

encoding the aggregated data in at least a sixth hex tile, wherein the third set of hex tiles comprises the sixth hex tile.

Assignments (3)
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 20, 2022
From: UNFOLDED, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 059976/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2021
From: BRODSKY, ISAAC MEHRO; HE, SHAN; GREEN, IB; KASHUK, SINA RASSAEI
To: UNFOLDED, INC.
Reel/Frame 058128/0511 →
Continuity (2)
Provisional Application 63114381 · Nov 16, 2020
Related Publication 20220156291A1 · May 19, 2022
References Cited (14)
US 10444941B2 · Cervelli · 2019 [cited by examiner]
US 11380441B1 · Baker · 2022 [cited by examiner]
US 20080307498A1 · Johnson · 2008 [cited by examiner]
US 20100104174A1 · Rohlf · 2010 [cited by examiner]
US 20120038662A1 · Dicklin · 2012 [cited by examiner]
US 20140280064A1 · McDougall · 2014 [cited by examiner]
US 20160300375A1 · Beckett · 2016 [cited by applicant]
US 20170293635A1 · Peterson · 2017 [cited by examiner]
US 20180040011A1 · Milton · 2018 [cited by examiner]
US 20190128679A1 · Thompson · 2019 [cited by applicant]
Communication Pursuant to Article 94(3) issued in EP Appl. No. 21827259.9 on Mar. 14, 2025 (8 pages). [cited by applicant]
Brodsky Isaac: “H3: Uber's Hexagonal Hierarchical Spatial Index”, Jun. 27, 2018 (Jun. 27, 2018), XP55896586, Retrieved from the Internet: URL:https://eng.uber.com/h3/. [cited by applicant]
Brodsky Isaac: “Import the library . uber/h3@1dcd63b . Github”, Jan. 8, 2018 (Jan. 8, 2018), XP055896519, Retrieved from the Internet: URL:https://github.com/uber/h3/commit/1dcd63bcce28c850d5e6e2f3b095cb06ee6420fc. [cited by applicant]
Itoh Takayuki et al: “Enhanced Hexagon-Tiling Algorithm for Map-Like Information Visualization” Proceedings of the 8th International Symposium on Visual Information Communication and Interaction, Aug. 24, 2015 (Aug. 24,… [cited by applicant]