IP Library Granted Patent US 9,832,272
Granted Patent B2
US 9,832,272 · App. 14/637,161 · Granted Nov 28, 2017

Dynamically shifting map-related tasks

Inventor: David Robert Gordon (Tokyo, JP)
Assignee: GOOGLE INC.
H04L67/18G01C21/26G01C21/32G01C21/36H04L43/08H04L67/36H04L67/42H04W4/025
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,832,272
App. No.
14/637,161
Filed
Mar 3, 2015
Granted
Nov 28, 2017
Kind
B2
Art Unit
3662
USPC
701/532
Abstract

To efficiently generate geographic content for display on client devices, a method includes determining a current status of a client device and determining a current status of a network connection between the client device and a network server. The method includes determining, based at least on one of (i) the determined current status of the client device or (ii) the determined current status of the network connection, whether a task related to generating geographic content for display on the client device should be executed on the client device or on the network server. The method also includes causing either the client device or the network server to execute the task, in accordance with the determination of where the task should be executed.

Claims (62)

1. A method for efficiently generating geographic content for display on client devices, the method comprising:

determining, by one or more processors, a current status of a client device;

determining, by the one or more processors, a current status of a network connection between the client device and a network server;

based at least on one of (i) the determined current status of the client device or (ii) the determined current status of the network connection, determining, by the one or more processors, whether a task executable on the client device and the network server, and related to generating geographic content for display on the client device should be executed on the client device or on the network server;

in a first instance, causing, by the one or more processors, the client device to execute the task in accordance with the determination of where the task should be executed, including executing a limited version of the task; and

in a second instance, causing, by the one or more processors, the network server to execute a full version of the task, in accordance with the determination of where the task should be executed.

2. The method of claim 1 , wherein causing the client device or the network server to execute the task in the first instance and the second instance, respectively, includes causing the client device and the network server to determine navigation directions for navigating a user of the client device from a source to a destination.

3. The method of claim 1 , wherein determining the current status of the client device includes determining, by the one or more processors, a status of a battery with which the client device is powered.

4. The method of claim 1 , wherein determining the current status of the network connection includes determining, by the one or more processors, a current downlink bandwidth of the network connection.

5. The method of claim 1 , wherein determining the current status of the network connection includes determining, by the one or more processors, a current cost of transmitting data packets via the network connection.

6. The method of claim 1 implemented in the client device that includes the one or more processors, the method further comprising:

in response to determining that the task should be executed on the network server, transmitting a message to the network server to request that the task be executed on the network server, and

receive, from the network server, a result of executing the task.

7. The method of claim 1 implemented in the network server, further comprising:

determining a current load of the network server;

wherein determining whether the task should be executed on the client device or on the network server is further based on the determined current load of the network server.

8. The method of claim 1 , wherein the task is one of a plurality of tasks related to generating the geographic content, the method further comprising causing the other one of the client device and the network server to execute another one of the plurality of tasks.

9. A client device comprising:

a user interface;

a communication interface to couple the client device to a network server via a communication link;

processing hardware coupled to the user interface and the communication interface, the processing hardware configured to:

determine a current status of the communication link, and

based at least in part on the determined status of the communication link, determine whether a task executable on the client device and the network server, and related to generating geographic content for display via the user interface should be executed on the client device or on the network server,

in a first instance, in response to determining that the task should be executed on the client device, execute a limited version of the task, and

in a second instance, in response to determining that the task should be executed on the network server, transmit a message to the network server to request that the task be executed thereon, wherein the network server executes a full version of the task.

10. The client device of claim 9 , further comprising a battery;

wherein the processing hardware is further configured to:

determine a current status of the battery, and

determine whether the task should be executed on the client device or on the network server further in view of the current status of the battery.

11. The client device of claim 9 , wherein to determine the current status of the communication link, the processing hardware is configured to determine current downlink bandwidth of the communication link.

12. The client device of claim 9 , wherein the processing hardware is further configured to:

identify a plurality of tasks related to generating geographic content to be executed on the client device or on the network server,

determine, based at least in part on the determined status of the communication link, (i) a first group of one or more the plurality of tasks to be executed on the client device, and (ii) a second group of one or more the plurality of tasks to be executed on the network server, and

execute the first group of tasks, and

transmit one or more messages to the network server to request that the second group of tasks be executed thereon.

13. The client device of claim 9 , wherein the processing hardware is further configured to:

cache map data corresponding to a category of map data, the category of map data at least one of:

(i) having a relatively high level of user interest as compared to other categories of map data, or

(ii) being frequently accessed by a user of the client device; and

determine, based on the caching of the map data, whether the task related to generating geographic content for display via the user interface should be executed on the client device or on the network server.

14. The client device of claim 13 , wherein the map data is first map data and the category of map data is a first category of map data, and wherein the processing hardware is further configured to:

cache second map data corresponding to a second category of map data,

the second category of map data having a lower level of user interest than the first category of map data, and

the second map data corresponding to a smaller geographic area than the first map data.

15. A communication system comprising:

a client device configured to execute tasks of a certain type, related to generating geographic content for display on the client device;

a network server coupled to the client device via a communication network, the network server configured to execute tasks of the certain type upon request;

software instructions executed on one or more processors in the client device and/or the network server, the software instructions configured to:

determine a current status of a network connection between the client device and the network server,

select, based at least on the current status of the network connection, one of the client device or the network server for execution of a task of the certain type,

in a first instance, cause the client device to execute a limited version of the task in accordance with the selection; and

in a second instance, cause the network server to execute a full version of the task in accordance with the selection.

16. The communication system of claim 15 , wherein the task includes generating navigation directions for navigating a user of the client device from a source to a destination.

17. The communication system of claim 16 , wherein:

the network server is configured to receive data indicative of current road conditions,

the network server is configured to generate the navigation directions using the current road conditions, and

the client device is configured to generate the navigation directions without accounting for the current road conditions.

18. The communication system of claim 15 , wherein the client device is a mobile device including a battery, and wherein the task assignment module is further configured to:

determine a current status of the battery, and

select one of the client device or the network server further in view of the current status of the battery.

19. The communication system of claim 15 , wherein to determine the current status of a network connection, the task assignment module is configured to determine a current bandwidth of the network connection.

20. The communication system of claim 15 , wherein to determine the current status of a network connection, the task assignment module is configured to determine a current cost of transmitting data packets via the network connection.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2016
From: GORDON, DAVID ROBERT
To: GOOGLE INC.
Reel/Frame 037737/0704 →
Continuity (2)
Provisional Application 61947846 · Mar 4, 2014
Related Publication 20150256631A1 · Sep 10, 2015