IP Library Granted Patent US 9,905,043
Granted Patent B2
US 9,905,043 · App. 14/244,381 · Granted Feb 27, 2018

Techniques to generate digital maps

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,905,043
App. No.
14/244,381
Granted
Feb 27, 2018
Kind
B2
Abstract

Techniques to generate digital maps are described. A method may include receiving category information having multiple categories defined for a geographic area of a digital map, each of the multiple categories having one or more category values, scheduling tasks to generate an annotated digital map with one or more processor circuits, the annotated digital map to include a visual representation of the multiple categories and associated category values for the geographic area of the digital map, the visual representation having different visual portions each representing a category as defined by an associated category value that changes over time, the visual portions each comprising a set of data points, and generating, by circuitry, the annotated digital map with the visual representation in accordance with the scheduled tasks. Other embodiments are described and claimed.

Claims (74)

1. A computer-implemented method, comprising:

receiving category information having multiple categories defined for a geographic area of a digital map, each of the multiple categories having one or more category values;

and

generating, by circuitry, an annotated digital map with a visual representation, the visual representation corresponding to a location in the geographic area and having different visual portions of which each visual portion presents information corresponding to a category as defined by an associated category value that changes over time resulting in a change to a rendering of that visual portion over time, wherein generating the annotated digital map further comprises determining, for each point in time, a relative position of the each visual portion amongst the different visual portions.

2. The computer-implemented method of claim 1 , comprising:

traversing all data points for the visual representation;

filtering the data points by one or more filter criteria; and

storing the filtered data points in a gather data structure in a gather buffer, the gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value.

3. The computer-implemented method of claim 1 , comprising:

traversing a gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value;

accumulating category values across each row of the gather data structure in one or more accumulate passes; and

storing the accumulated values in an accumulate data structure in an accumulate buffer, the accumulated data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent accumulate value iterations for the data points, with each row and column intersection to comprise a cell having an accumulated value.

4. The computer-implemented method of claim 3 , comprising accumulating the category values across each row of the gather data structure in parallel with a graphical processing unit (GPU) using multiple accumulate passes.

5. The computer-implemented method of claim 1 , comprising:

traversing a gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value;

selecting a category value for each row that corresponds to one or more selection criteria; and

storing the selected values in a select data structure in a select buffer, the select data structure having a set of rows and columns, the rows to represent locations for data points, a first column to represent a selected category value, and a second column to represent a selected category associated with the selected category value.

6. The computer-implemented method of claim 1 , comprising:

determining a category and associated category value for each location in order to render data points of each visual portion of the visual representation from a gather data structure and a select data structure; and

determining a relative position for each visual portion within the visual representation from an accumulate data structure.

7. The computer-implemented method of claim 1 , comprising generating the annotated digital map with the visual representation using a gather data structure, an accumulate data structure and a select data structure.

8. An apparatus, comprising:

processor circuitry; and

a map application operative on the processor circuitry to manage a digital map, the map application comprising:

a map manager component to receive category information having multiple categories defined for a geographic area of a digital map, each of the multiple categories having one or more category values;

a map scheduler component to schedule tasks to generate an annotated digital map with one or more processor circuits, the annotated digital map to include a visual representation of the multiple categories and associated category values for the geographic area of the digital map, the visual representation corresponding to a location in the geographic area and having different visual portions each representing a category as defined by an associated category value that changes over time, the tasks configured to assign work units to determine which of the different visual portions are to be visible for a given point in time and to determine a relative position for each visual portion amongst the different visual portions at the given point in time; and

a map generator component to generate the annotated digital map with the visual representation in accordance with the scheduled tasks.

9. The apparatus of claim 8 , comprising:

a gather buffer; and

the map scheduler component to:

traverse all data points for the visual representation;

filter the data points by one or more filter criteria; and

store the filtered data points in a gather data structure in the gather buffer, the gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value.

10. The apparatus of claim 8 , comprising:

an accumulate buffer; and

the map scheduler component to:

traverse a gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value,

accumulate category values across each row of the gather data structure in one or more accumulate passes; and

store the accumulated values in an accumulate data structure in the accumulate buffer, the accumulated data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent accumulate value iterations for the data points, with each row and column intersection to comprise a cell having an accumulated value.

11. The apparatus of claim 10 , comprising:

a graphical processing unit (GPU) coupled to the processor circuit; and

the map scheduler component to instruct the GPU to accumulate the category values across each row of the gather data structure in parallel using multiple accumulate passes.

12. The apparatus of claim 8 , comprising:

a select buffer; and

the map scheduler component to:

traverse a gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value;

select a category value for each row that corresponds to one or more selection criteria; and

store the selected values in a select data structure in a select buffer, the select data structure having a set of rows and columns, the rows to represent locations for data points, a first column to represent a selected category value, and a second column to represent a selected category associated with the selected category value.

13. The apparatus of claim 8 , the map generate component to:

determine a category and associated category value for each location in order to render data points of each visual portion of the visual representation from a gather data structure and a select data structure;

determine a relative position for each visual portion within the visual representation from an accumulate data structure; and

generate the annotated digital map with the visual representation.

14. The apparatus of claim 8 , the map generator component to generate the annotated digital map with the visual representation using a gather data structure, an accumulate data structure and a select data structure.

15. At least one computer-readable storage device comprising instructions that, when executed on a set of graphics processing units (GPUs), cause a system to:

receive category information having multiple categories defined for a geographic area of a digital map, each of the multiple categories having one or more category values;

schedule tasks to the set of GPUs to generate an annotated digital map with time-bound clustered graphics elements, the annotated digital map to include a visual representation of the multiple categories and associated category values for the geographic area of the digital map, the visual representation having different visual portions each representing a category as defined by an associated category value that changes over time;

determine, for each point in time, a relative position of each visual portion within the visual representation based upon the associated category value; and

generate the annotated digital map with the visual representation in accordance with the scheduled tasks.

16. The at least one computer-readable storage device of claim 15 , comprising instructions that when executed cause the system to:

traverse all data points for the visual representation;

filter the data points by one or more filter criteria; and

store the filtered data points in a gather data structure in a gather buffer, the gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value.

17. The at least one computer-readable storage device of claim 15 , comprising instructions that when executed cause the system to:

traverse a gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value;

accumulate category values across each row of the gather data structure in one or more accumulate passes; and

store the accumulated values in an accumulate data structure in an accumulate buffer, the accumulated data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent accumulate value iterations for the data points, with each row and column intersection to comprise a cell having an accumulated value.

18. The at least one computer-readable storage device of claim 15 , comprising instructions that when executed cause the system to:

traverse a gather data structure having a set of rows and columns, the rows to represent locations for data points and the columns to represent categories for the data points, with each row and column intersection to comprise a cell having a category value;

select a category value for each row that corresponds to one or more selection criteria; and

store the selected values in a select data structure in a select buffer, the select data structure having a set of rows and columns, the rows to represent locations for data points, a first column to represent a selected category value, and a second column to represent a selected category associated with the selected category value.

19. The at least one computer-readable storage device of claim 15 , comprising instructions that when executed cause the system to:

determine a category and associated category value for each location in order to render data points of each visual portion of the visual representation from a gather data structure and a select data structure; and

determine a relative position for each visual portion within the visual representation from an accumulate data structure.

20. The at least one computer-readable storage device of claim 15 , comprising instructions that when executed cause the system to generate the annotated digital map with the visual representation using a gather data structure, an accumulate data structure and a select data structure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2014
From: DA VEIGA, ALEXANDRE
To: MICROSOFT CORPORATION
Reel/Frame 032596/0627 →