1. A method for selecting and presenting a route to a user comprising: storing on at least one of a server and a device a plurality of associations, each association between a route taken by a user and at least one safety characteristic of the route; receiving from a particular user a request for at least one recommended route to a destination point; formulating a query based on user specified parameters, including an origination point, the destination point, and a safety characteristic, to obtain the at least one recommended route; retrieving, in response to the query, a plurality of routes including routes from the stored plurality of associations, the plurality of routes based on a safety characteristic of the routes and related to at least one of the origination point and the destination point; and presenting the at least one recommended route to the particular user based on at least one of the retrieved routes that most closely matches the user specified parameters, wherein at least one of the preceding actions is performed on at least one of the server and the device.