Pre-fetching map data based on a tile budget
First Claim
1. A computer-implemented method comprising:
- identifying, on a client device, one or more map points of interest;
identifying, based on the map points of interest, pre-fetch map data tiles to be requested from a hardware server communicatively coupled to a remote map database and stored on the client device for eventual rendering of a visual display of map data in response to a subsequent user request, wherein each pre-fetch map data tile includes vector data for the client device to construct a portion of a map for display at a single zoom level;
determining, at the client device, a tile budget for storing the pre-fetch map data tiles at the client device;
prioritizing, at the client device, a plurality of the map points of interest in an order from highest to lowest based on prior access of the plurality of the map points of interest by the client device;
requesting, from the hardware server communicatively coupled to the remote map database storing the map data, the pre-fetch map data tiles corresponding to the plurality of the map points of interest in order from highest to lowest priority corresponding to one or more map points of interest;
receiving, at the client device, a subset of the pre-fetch map data tiles from the hardware server communicatively coupled to the remote map database in order from highest to lowest priority; and
,during receiving of the pre-fetch map data tiles at the client device, determining, at the client device, if the tile budget has been met by the received pre-fetch map data tiles, where,if the tile budget has been met by the received subset of the pre-fetch map data tiles, the client device stops receiving additional pre-fetch map data tiles from the map database, andif the tile budget has not been met, the client device sends a signal to the hardware server communicatively coupled to the remote map database to send a next subset of the pre-fetch map data tiles;
wherein the subset of the pre-fetch map data tiles includes a higher priority than the next subset of the pre-fetch map data tiles and the client device continues receiving additional, prioritized subsets of the pre-fetch map data tiles from the hardware server communicatively coupled to the remote map database until the tile budget is met or until all pre-fetch map data tiles corresponding to the one or more map points of interest have been received at the client device; and
storing the received pre-fetch map data tiles in a local memory on the client device until a subsequent user request.
2 Assignments
0 Petitions
Accused Products
Abstract
A pre-fetching map data system and method identifies a subset of map data to corresponding to one or more points of interest to be displayed on the map. The map data is stored on a remote map database in map data tiles. The pre-fetching map data system identifies those map data tiles that correspond to the one or more points of interest, where the identified pre-fetch map data tiles are sent from the remote database to a client device for cache storage. The number of pre-fetch map data tiles are determined using a tile budget, such as a maximum number of map data tiles that may be stored on the client device or a maximum amount of map data memory that can be consumed on the client device.
192 Citations
35 Claims
-
1. A computer-implemented method comprising:
-
identifying, on a client device, one or more map points of interest; identifying, based on the map points of interest, pre-fetch map data tiles to be requested from a hardware server communicatively coupled to a remote map database and stored on the client device for eventual rendering of a visual display of map data in response to a subsequent user request, wherein each pre-fetch map data tile includes vector data for the client device to construct a portion of a map for display at a single zoom level; determining, at the client device, a tile budget for storing the pre-fetch map data tiles at the client device; prioritizing, at the client device, a plurality of the map points of interest in an order from highest to lowest based on prior access of the plurality of the map points of interest by the client device; requesting, from the hardware server communicatively coupled to the remote map database storing the map data, the pre-fetch map data tiles corresponding to the plurality of the map points of interest in order from highest to lowest priority corresponding to one or more map points of interest; receiving, at the client device, a subset of the pre-fetch map data tiles from the hardware server communicatively coupled to the remote map database in order from highest to lowest priority; and
,during receiving of the pre-fetch map data tiles at the client device, determining, at the client device, if the tile budget has been met by the received pre-fetch map data tiles, where, if the tile budget has been met by the received subset of the pre-fetch map data tiles, the client device stops receiving additional pre-fetch map data tiles from the map database, and if the tile budget has not been met, the client device sends a signal to the hardware server communicatively coupled to the remote map database to send a next subset of the pre-fetch map data tiles; wherein the subset of the pre-fetch map data tiles includes a higher priority than the next subset of the pre-fetch map data tiles and the client device continues receiving additional, prioritized subsets of the pre-fetch map data tiles from the hardware server communicatively coupled to the remote map database until the tile budget is met or until all pre-fetch map data tiles corresponding to the one or more map points of interest have been received at the client device; and storing the received pre-fetch map data tiles in a local memory on the client device until a subsequent user request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable medium storing instructions, the instructions when executed by a processor cause the processor to:
-
identify, on a client device, one or more map points of interest; identify, based on the map points of interest, pre-fetch map data tiles to be requested from a hardware server communicatively coupled to a remote map database and stored on the client device for eventual rendering of a visual display of map data in response to a subsequent user request, wherein each pre-fetch map data tile includes vector data for the client device to construct a portion of a map for display at a single zoom level; determine, at the client device, a tile budget for storing the pre-fetch map data tiles at the client device; prioritize, at the client device, a plurality of the map points of interest in an order from highest to lowest based on prior access of the plurality of the map points of interest by the client device; request, from the hardware server communicatively coupled to the remote map database storing the map data, the pre-fetch map data tiles in order from highest to lowest priority corresponding to one or more map points of interest; receive, at the client device, a subset of the pre-fetch map data tiles from the hardware server communicatively coupled to the remote map database; and
,during receiving of the subset of the pre-fetch map data tiles at the client device, determining, at the client device, if the tile budget has been met by the received subset of the pre-fetch map data tiles, where, if the tile budget has been met by the received subset of the pre-fetch map data tiles, the client device stops receiving additional pre-fetch map data tiles from the map database, and if the tile budget has not been met, the client device sends a signal to the hardware server communicatively coupled to the remote map database to send a next subset of the pre-fetch map data tiles; wherein the subset of the pre-fetch map data tiles includes a higher priority than the next subset of the of the pre-fetch map data tiles and the client device continues receiving additional, prioritized subsets of the pre-fetch map data tiles from the hardware server communicatively coupled to the remote map database until the tile budget is met or until all pre-fetch map data tiles corresponding to the one or more map points of interest have been received at the client device; and store the received pre-fetch map data tiles in a local memory on the client device until a subsequent user request. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer system for fetching map tile data to be used in constructing a visual display of map data on a client device, the computer system comprising:
-
one or more processors; and one or more memories storing a plurality of modules including instructions for execution on the one or more processors, the modules including a display module including instructions executed on the one or more processors to construct and display the visual display of the map data, where the map data is stored in a remote map database as a plurality of map data tiles; a map point identifier module including instructions executed on the one or more processors to prioritize, at the client device, the plurality of the map points of interest in an order from highest to lowest, to identify one or more map points of interest that define pre-fetch map data tiles that are requested from a remote map database and stored on the client device for eventual rendering of a visual display of map data in response to a subsequent user request, wherein each pre-fetch map data tile includes vector data for the client device to construct a portion of a map for display at a single zoom level; a database interface module including instructions executed on the one or more processors to request, from the map database, the pre-fetch map data tiles in order from highest to lowest priority from the remote map database and to receive a subset of the pre-fetch map data tiles from the remote map database; and a tile budget module including instructions executed on the one or more processors to determine, at the client device, a tile budget for storing the pre-fetch map data tiles at the client device, and during receiving of the subset of the pre-fetch map data tiles, to determine if tile budget has been met by the received subset of the pre-fetch map data tiles, where, if the tile budget has been met by the received subset of the pre-fetch map data tiles, the database interface module is to stop receiving additional pre-fetch map data tiles from the remote map database, and if the tile budget has not been met, the database interface module sends a signal to the hardware server communicatively coupled to the remote map database to send a next subset of the pre-fetch map data tiles; wherein the subset of the pre-fetch map data tiles includes a higher priority than the next subset of the of the pre-fetch map data tiles and the client device is to continue receiving additional, prioritized subsets of the pre-fetch map data tiles from the map database until the tile budget is met or until all pre-fetch map data tiles corresponding to the one or more map points of interest have been received at the client device. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
Specification