System and method for storing and providing routes
In one aspect, a system and method is provided whereby map-related requests from mobile devices are used to store and aggregate routes. The routes are then used to determine optimum directions in response to subsequent requests.
1. A method comprising:
receiving, by one or more processors, a plurality of previously traveled routes by a plurality of client devices, each previously traveled route of the plurality of previously traveled routes identifying a route between two or more locations;
receiving, by the one or more processors from a requesting client device, a request for directions to a destination location, the request identifying a sensor based location determination of the requesting client device;
selecting, by the one or more processors, a subset of previously traveled routes of the plurality of previously traveled routes based on the two or more locations, the destination location, and the sensor based location determination;
selecting, by the one or more processors, a given route of the subset of previously traveled routes based on a total number of client devices that have provided the given route as one or more of the plurality of previously traveled routes; and
providing, by the one or more processors, the given route to the requesting client device.
2. The method of claim 1 , wherein the given route is further selected based on a time that the request for directions is received.
3. The method of claim 2 , wherein the given route is further selected based on user preferences associated with the requesting client device.
4. The method of claim 1 , wherein the given route is further selected based on user preferences associated with the requesting client device.
5. The method of claim 1 , wherein the given route is further selected based on whether the given route has been previously traveled by a minimum number of client devices of the plurality of client devices.
6. A system comprising one or more computers having one or more processors configured to:
access a plurality of previously traveled routes by a plurality of client devices, each previously traveled route of the plurality of previously traveled routes identifying a route between two or more locations;
receive from a requesting client device, a request for directions to a destination location, the request identifying a sensor based location determination of the requesting client device;
select a subset of previously traveled routes of the plurality of previously traveled routes based on the two or more locations, the destination location, and the sensor based location determination;
select a given route of the subset of previously traveled routes based on a total number of client devices that have provided the given route as one or more of the plurality of previously traveled routes; and
provide the given route to the requesting client device.
7. The system of claim 6 , wherein the one or more processors are further configured to select the given route further based on a time that the request for directions is received.
8. The system of claim 7 , wherein the one or more processors are further configured to select the given route further based on user preferences associated with the requesting client device.
9. The system of claim 6 , wherein the one or more processors are further configured to select the given route further based on user preferences associated with the requesting client device.
10. The system of claim 6 , wherein the one or more processors are further configured to select the given route further based on whether the given route has been previously traveled by a minimum number of client devices of the plurality of client devices.
11. The system of claim 6 , further comprising memory storing the plurality of previously traveled routes.
12. A non-transitory, tangible computer-readable storage medium on which computer readable instructions of a program are stored, the instructions, when executed by a processor, cause the processor to perform a method, the method comprising:
receiving a plurality of previously traveled routes by a plurality of client devices, each previously traveled route of the plurality of previously traveled routes identifying a route between two or more locations;
receiving from a requesting client device, a request for directions to a destination location, the request identifying a sensor based location determination of the requesting client device;
selecting a subset of previously traveled routes of the plurality of previously traveled routes based on the two or more locations, the destination location, and the sensor based location determination;
selecting a given route of the subset of previously traveled routes based on a number of client devices that have provided the given route as one or more of the plurality of previously traveled routes; and
providing the given route to the requesting client device.
13. The medium of claim 12 , wherein the given route is further selected based on a time that the request for directions is received.
14. The medium of claim 13 , wherein the given route is further selected based on user preferences associated with the requesting client device.
15. The medium of claim 12 , wherein the given route is further selected based on user preferences associated with the requesting client device.
16. The medium of claim 12 , wherein the given route is further selected based on whether the given route has been previously traveled by a minimum number of client devices of the plurality of client devices.
17. The method of claim 1 , wherein the plurality of previously traveled routes are received from the plurality of client devices.
18. The method of claim 4 , wherein the user preference relates to popularity of previously traveled routes.
19. The method of claim 1 , further comprising:
receiving a first location from the requesting client device;
selecting a second route of the plurality of routes based on the first location and the two or more locations of the given route;
stringing the given route with the second route to generate a single route, such that providing the given route includes providing the single route.