IP Library Granted Patent US 10,444,941
Granted Patent B2
US 10,444,941 · App. 15/146,842 · Granted Oct 15, 2019

Interactive geospatial map

Inventors: Daniel Cervelli (Mountain View, CA); Cai GoGwilt (San Francisco, CA); William Macrae (Palo Alto, CA); Robert Prochnow (Palo Alto, CA); Dylan Scott (Palo Alto, CA); Henry Tung (Palo Alto, CA); Kevin Verdieck (Palo Alto, CA); Agatha Yu (San Francisco, CA)
Assignee: Palantir Technologies Inc.
G06F3/0482G01C21/3667G06F3/04847G06F3/14G06F16/29G06T11/001G06T11/206G06T11/60G06T19/006G09B29/106
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 10,444,941
App. No.
15/146,842
Granted
Oct 15, 2019
Kind
B2
Abstract

Various systems and methods are provided that display various interactive user interfaces containing interactive maps. The user may use the interactive map to perform searches for data objects, toggle different layers associated with different types of objects for display, generate heatmaps based upon a grid and/or data object shapes, copy data between different interactive maps, and/or define filters to filter the displayed data. In response to user interaction with the map at a client system, tile layers are generated using server-side components, assembled into map tiles, and transmitted to client-side components to be displayed to the user. The tile layers may include a base tile layer, vector tile layer, selection tile layer, and inactive tile layer.

Claims (58)

1. A computer system comprising:

an electronic data structure configured to store a plurality of features or data objects, wherein each of the features or data objects is associated with at least respective locations and respective attribute values;

a computer readable medium storing one or more software modules including computer executable instructions;

one or more hardware processors in communication with the electronic data structure and the computer readable medium, and configured to execute a user interface module of the software modules in order to:

generate user interface data for rendering an interactive user interface on a client computing device, the interactive user interface including a map;

receive a query from the client computing device corresponding to a selection of an attribute;

generate a grid comprising a plurality of cells, wherein the cells define regions on the map and are non-overlapping, and wherein each cell of the plurality of cells has the same predefined dimensions;

for each cell of the plurality of cells, calculate an aggregate attribute value for the cell, based at least in part upon the selected attribute and zero or more data objects associated with the selected attribute and locations within the region defined by the cell;

determine shading for each of the plurality of cells based at least in part on the aggregate attribute values of the cells to generate data for rendering a grid-based heatmap on the map, wherein each of the plurality of cells is associated with a corresponding aggregate attribute value and a corresponding shading based on the corresponding aggregate attribute value; and

transmit the generated data for rendering the grid-based heatmap to the client computing device to be overlaid on the map,

wherein the predefined dimensions of the plurality of cells are indicated by a user.

2. The computer system of claim 1 , wherein the plurality of cells comprise one or more spaces in a rectangular grid.

3. The computer system of claim 1 , wherein the plurality of cells are associated with one or more data objects.

4. The computer system of claim 3 , wherein the one or more data objects are associated with buildings, and the plurality of cells correspond to building footprints.

5. The computer system of claim 1 , wherein generating the heatmap on the map comprises assigning a color to each cell of the plurality of cells, wherein the assigned color for a cell is based at least in part upon the aggregate attribute value for the cell.

6. The computer system of claim 1 , wherein the selected attribute comprises an aggregation of two or more different attributes.

7. The computer system of claim 6 , wherein the two or more different attributes comprises a first attribute associated with a first data object type, and a second attribute associated with a second data object type.

8. The computer system of claim 6 , wherein calculating an aggregate attribute value for the cell comprises aggregating a first aggregate attribute value based upon the first attribute with a second aggregate attribute value based upon the second attribute.

9. The computer system of claim 1 , wherein calculating an aggregate attribute value for the cell comprises:

identifying one or more data objects associated with the attribute within the region defined by the cell; and

calculating the aggregate attribute value for the cell based at least in part upon values of the attribute associated with the one or more identified data objects.

10. The computer system of claim 1 , wherein the one or more hardware processors are further configured to:

receive a request from the client computing device specifying one or more filter conditions; and

in response to the received request, generate the data for rendering the heatmap such that only cells having an aggregate attribute value satisfying the one or more filter conditions are displayed.

11. A computer-implemented method for generating a heatmap on an interactive user interface, the method comprising:

accessing an electronic data structure configured to store a plurality of features of data objects, wherein each of the features of data objects is associated with at least respective locations and respective attribute values;

generating user interface data for rendering an interactive user interface on a client computing device, the interactive user interface including a map;

receiving one or more inputs from the client computing device corresponding to a selection of an attribute and one or more filter conditions;

generating a grid comprising a plurality of cells, wherein the cells define regions on the map and are non-overlapping, and wherein each cell of the plurality of cells has the same predefined dimensions;

for each cell of the plurality of cells, calculating an aggregate attribute value for the cell, based at least in part upon the selected attribute and zero or more data objects associated with the selected attribute and locations within the region defined by the cell;

determining a set of cells of the plurality of cells having an aggregate attribute value satisfying the one or more filter conditions;

determining shading for each of the cells of the set of cells based at least in part on the aggregate attribute values of the cells to generate data for rendering a grid-based heatmap comprising the set of cells on the map, wherein each of the plurality of cells is associated with a corresponding aggregate attribute value and a corresponding shading based on the corresponding aggregate attribute value; and

transmitting the generated data for rendering the grid-based heatmap to the client computing device to be overlaid on the map.

12. The method of claim 11 , wherein the plurality of cells comprise one or more spaces in a rectangular grid.

13. The method of claim 11 , wherein generating the heatmap on the map comprises assigning a color to each cell of the plurality of cells, wherein the assigned color for a cell is based at least in part upon the aggregate attribute value for the cell.

14. The method of claim 11 , wherein the selected attribute comprises an aggregation of two or more different attributes.

15. The method of claim 14 , wherein the two or more different attributes comprises a first attribute associated with a first data object type, and a second attribute associated with a second data object type.

16. The method of claim 15 , wherein calculating an aggregate attribute value for the cell comprises aggregating a first aggregate attribute value based upon the first attribute with a second aggregate attribute value based upon the second attribute.

17. The method of claim 11 , wherein calculating an aggregate attribute value for the cell comprises:

identifying one or more data objects associated with the attribute within the region defined by the cell; and

calculating the aggregate attribute value for the cell based at least in part upon values of the attribute associated with the one or more identified data objects.

18. The method of claim 11 , further comprising:

receiving a request from the client computing device specifying one or more filter conditions; and

in response to the received request, generating the data for rendering the heatmap such that only cells having an aggregate attribute value satisfying the one or more filter conditions are displayed.

19. The computer system of claim 1 , wherein the one or more hardware processors are configured to execute a user interface module of the software modules in order to further:

in response to a user input, generate a selectable map layer based on the generated data.

20. A computer system comprising:

an electronic data structure configured to store a plurality of features or data objects, wherein each of the features or data objects is associated with at least respective locations and respective attribute values;

a computer readable medium storing one or more software modules including computer executable instructions;

one or more hardware processors in communication with the electronic data structure and the computer readable medium, and configured to execute a user interface module of the software modules in order to:

generate user interface data for rendering an interactive user interface on a client computing device, the interactive user interface including a map;

receive a first input from the client computing device corresponding to a selection of a first attribute;

generate a grid comprising a plurality of cells, wherein the cells define regions on the map and are non-overlapping, and wherein each cell of the plurality of cells has the same predefined dimensions;

for each cell of the plurality of cells, calculate an aggregate attribute value for the cell, based at least in part upon the selected first attribute and zero or more data objects associated with the selected first attribute and locations within the region defined by the cell;

determine shading for each of the plurality of cells based at least in part on the aggregate attribute values of the cells to generate data for rendering a grid-based heatmap on the map, wherein each of the plurality of cells is associated with a corresponding aggregate attribute value and a corresponding shading based on the corresponding aggregate attribute value;

transmit the generated data for rendering the grid-based heatmap to the client computing device to be overlaid on the map;

receive a second input from the client computing device corresponding to a selection of a set of cells of the plurality of cells and an indication of a second attribute; and

determine a set of data objects associated with the second attribute and located within an area defined by the set of cells.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2019
From: CERVELLI, DANIEL; GOGWILT, CAI; MACRAE, WILLIAM; PROCHNOW, ROBERT; SCOTT, DYLAN; TUNG, HENRY; VERDIECK, KEVIN; YU, AGATHA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 050293/0785 →
Continuity (3)
Continuation 14934004 · Nov 5, 2015
Provisional Application 62206174 · Aug 17, 2015
Related Publication 20170052747A1 · Feb 23, 2017
Cited By (7)
US 12,204,566 US 12,212,725 US 12,216,802 US 12,242,569 US 12,271,403 US 12,346,352 US 12,585,830