IP Library Granted Patent US 9,898,178
Granted Patent B2
US 9,898,178 · App. 14/855,116 · Granted Feb 20, 2018

Systems and methods for utilizing available map resources to generate previews for map portions

Inventors: Tomasz Zawada (San Francisco, CA); Kunal Bhalla (Menlo Park, CA); Jason Michael Carreiro (Mansfield, MA)
Assignee: Facebook, Inc.
G06F3/04845G06Q50/01G06F2203/04806
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,898,178
App. No.
14/855,116
Granted
Feb 20, 2018
Kind
B2
Abstract

Systems, methods, and non-transitory computer-readable media can provide a particular map portion out of a plurality of map portions representing a particular region. An instruction to zoom in, to a requested zoom level, with respect to the particular map portion can be received. It can be determined that a set of four map portions for representing the particular map portion at the requested zoom level is yet to be available. The set of four map portions for representing the particular map portion at the requested zoom level can be acquired. An enlarged version of the particular map portion can be provided, based on the requested zoom level, as a preview for the set of four map portions. The enlarged version of the particular map portion can be provided while the set of four map portions is being acquired.

Claims (70)

1. A computer-implemented method comprising:

providing, by a computing system, a particular map portion out of a plurality of map portions representing a particular region;

receiving, by the computing system, an instruction to zoom in, to a requested zoom level, with respect to the particular map portion;

determining, by the computing system, that a set of four map portions for representing the particular map portion at the requested zoom level is yet to be available;

acquiring, by the computing system, the set of four map portions for representing the particular map portion at the requested zoom level; and

providing, by the computing system, an enlarged version of the particular map portion, based on the requested zoom level, as a preview for the set of four map portions, wherein the enlarged version of the particular map portion is provided while the set of four map portions is being acquired, wherein

the plurality of map portions are represented as a plurality of nodes in a quad tree data structure,

at least one ancestor node in the quad tree data structure stores a pointer to at least one available descendent node, and

the pointer avoids linking from the at least one ancestor node to at least one unavailable intermediary node between the at least one ancestor node and the at least one descendent node.

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

receiving a second instruction to zoom in, to a second requested zoom level, with respect to an area represented by a first map portion in the set of four map portions;

determining that an additional set of four map portions for representing the first map portion at the second requested zoom level is yet to be available;

acquiring the additional set of four map portions for representing the first map portion at the second requested zoom level; and

providing an enlarged version of the first map portion, based on the second requested zoom level, as a preview for the additional set of four map portions, wherein the enlarged version of the first map portion is provided while the additional set of four map portions is being acquired.

3. The computer-implemented method of claim 1 , wherein determining that the set of four map portions for representing the particular map portion at the requested zoom level is yet to be available further comprises determining that one or more child nodes of the particular node in the quad tree data structure have yet to store map data respectively for one or more map portions in the set of four map portions.

4. The computer-implemented method of claim 1 , wherein acquiring the set of four map portions for representing the particular map portion at the requested zoom level further comprises:

identifying the particular node in the quad tree data structure;

searching for one or more child nodes of the particular node in the quad tree data structure;

acquiring a respective identifier for each respective child node, of the particular node, that represents each map portion in the set of four map portions; and

acquiring map data associated with each map portion in the set of four map portions based on each respective identifier for each respective child node.

5. The computer-implemented method of claim 1 , wherein at least some data associated with the quad tree data structure is stored within a least recently used (LRU) cache.

6. The computer-implemented method of claim 1 , wherein map data stored at the at least one ancestor node is utilized to generate a preview for at least one representative map portion associated with the at least one descendent node.

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

receiving a command to zoom out, to a particular zoom level, with respect to the particular map portion and three map portions adjacent the particular map portion;

determining that a given map portion for representing the particular map portion and the three map portions at the particular zoom level is yet to be available;

acquiring the given map portion for representing the particular map portion and the three map portions at the particular zoom level; and

providing a shrunken version of the particular map portion and the three map portions, based on the particular zoom level, as a preview for the given map portion, wherein the shrunken version of the particular map portion and the three map portions is provided while the given map portion is being acquired.

8. The computer-implemented method of claim 1 , wherein the particular map portion and each map portion in the set of four map portions correspond to map tiles.

9. A system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the system to perform:

providing a particular map portion out of a plurality of map portions representing a particular region;

receiving an instruction to zoom in, to a requested zoom level, with respect to the particular map portion;

determining that a set of four map portions for representing the particular map portion at the requested zoom level is yet to be available;

acquiring the set of four map portions for representing the particular map portion at the requested zoom level; and

providing an enlarged version of the particular map portion, based on the requested zoom level, as a preview for the set of four map portions, wherein the enlarged version of the particular map portion is provided while the set of four map portions is being acquired, wherein

the plurality of map portions are represented as a plurality of nodes in a quad tree data structure,

at least one ancestor node in the quad tree data structure stores a pointer to at least one available descendent node, and

the pointer avoids linking from the at least one ancestor node to at least one unavailable intermediary node between the at least one ancestor node and the at least one descendent node.

10. The system of claim 9 , wherein the instructions cause the system to further perform:

receiving a second instruction to zoom in, to a second requested zoom level, with respect to an area represented by a first map portion in the set of four map portions;

determining that an additional set of four map portions for representing the first map portion at the second requested zoom level is yet to be available;

acquiring the additional set of four map portions for representing the first map portion at the second requested zoom level; and

providing an enlarged version of the first map portion, based on the second requested zoom level, as a preview for the additional set of four map portions, wherein the enlarged version of the first map portion is provided while the additional set of four map portions is being acquired.

11. The system of claim 9 , wherein determining that the set of four map portions for representing the particular map portion at the requested zoom level is yet to be available further comprises determining that one or more child nodes of the particular node in the quad tree data structure have yet to store map data respectively for one or more map portions in the set of four map portions.

12. The system of claim 9 , wherein acquiring the set of four map portions for representing the particular map portion at the requested zoom level further comprises:

identifying the particular node in the quad tree data structure;

searching for one or more child nodes of the particular node in the quad tree data structure;

acquiring a respective identifier for each respective child node, of the particular node, that represents each map portion in the set of four map portions; and

acquiring map data associated with each map portion in the set of four map portions based on each respective identifier for each respective child node.

13. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

providing a particular map portion out of a plurality of map portions representing a particular region;

receiving an instruction to zoom in, to a requested zoom level, with respect to the particular map portion;

determining that a set of four map portions for representing the particular map portion at the requested zoom level is yet to be available;

acquiring the set of four map portions for representing the particular map portion at the requested zoom level; and

providing an enlarged version of the particular map portion, based on the requested zoom level, as a preview for the set of four map portions, wherein the enlarged version of the particular map portion is provided while the set of four map portions is being acquired, wherein

the plurality of map portions are represented as a plurality of nodes in a quad tree data structure,

at least one ancestor node in the quad tree data structure stores a pointer to at least one available descendent node, and

the pointer avoids linking from the at least one ancestor node to at least one unavailable intermediary node between the at least one ancestor node and the at least one descendent node.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions cause the computing system to further perform:

receiving a second instruction to zoom in, to a second requested zoom level, with respect to an area represented by a first map portion in the set of four map portions;

determining that an additional set of four map portions for representing the first map portion at the second requested zoom level is yet to be available;

acquiring the additional set of four map portions for representing the first map portion at the second requested zoom level; and

providing an enlarged version of the first map portion, based on the second requested zoom level, as a preview for the additional set of four map portions, wherein the enlarged version of the first map portion is provided while the additional set of four map portions is being acquired.

15. The non-transitory computer-readable storage medium of claim 13 , wherein determining that the set of four map portions for representing the particular map portion at the requested zoom level is yet to be available further comprises determining that one or more child nodes of the particular node in the quad tree data structure have yet to store map data respectively for one or more map portions in the set of four map portions.

16. The non-transitory computer-readable storage medium of claim 13 , wherein acquiring the set of four map portions for representing the particular map portion at the requested zoom level further comprises:

identifying the particular node in the quad tree data structure;

searching for one or more child nodes of the particular node in the quad tree data structure;

acquiring a respective identifier for each respective child node, of the particular node, that represents each map portion in the set of four map portions; and

acquiring map data associated with each map portion in the set of four map portions based on each respective identifier for each respective child node.

Assignments (2)
CHANGE OF NAME Recorded Nov 24, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058240/0439 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2015
From: ZAWADA, TOMASZ; BHALLA, KUNAL; CARREIRO, JASON MICHAEL
To: FACEBOOK, INC.
Reel/Frame 037216/0965 →
Continuity (1)
Related Publication 20170076424A1 · Mar 16, 2017