A method for determining a path for a user of a mobile device for traveling from an origination location to a destination location, comprising the steps of: receiving a request for a recommended path from the user from the origination location to the destination location, wherein the request comprises a origination location, a destination location, an optimization objective, a user-specified mobile network quality constraint indicating a minimum acceptable mobile network quality along the recommended path between the origination location and the destination location, and a travel constraint and the travel constraint comprises at least one of a maximum allowable travel distance, a maximum allowable travel delay, a maximum allowable gas consumption, a location to avoid, and a location to include on the recommended path; receiving network access point information for access points between the origination location and the destination location; and generating, with a processor, the recommended path from the origination location to the destination location using the user-specified mobile network quality constraint, the travel constraint and the network access point information, wherein the recommended path satisfies the network quality constraint and the travel constraint, and wherein the optimization objective includes a path with one of a maximized bandwidth, a maximized time with a preferred connection type, a minimized data packet loss rate, a minimized network latency, a minimized allowable jitter, a shortest travel distance, a quickest travel time, a maximized use of a preferred road type, and a minimized use of an undesirable road type, and wherein the user specified mobile network quality constraint includes at least one of a minimum allowable network bandwidth, a maximum allowable network latency, a maximum allowable packet loss rate, and a maximum allowable jitter; wherein generating the recommended path comprises generating a plurality of paths that satisfy the network quality constraint, and wherein the recommended path is one of the generated paths, and wherein the recommended path is selected from one of the plurality of paths that meets the optimization objective. receiving a request for a recommended path from the user from the origination location to the destination location, wherein the request comprises a origination location, a destination location, an optimization objective, a user-specified mobile network quality constraint indicating a minimum acceptable mobile network quality along the recommended path between the origination location and the destination location, and a travel constraint and the travel constraint comprises at least one of a maximum allowable travel distance, a maximum allowable travel delay, a maximum allowable gas consumption, a location to avoid, and a location to include on the recommended path; receiving network access point information for access points between the origination location and the destination location; and generating, with a processor, the recommended path from the origination location to the destination location using the user-specified mobile network quality constraint, the travel constraint and the network access point information, wherein the recommended path satisfies the network quality constraint and the travel constraint, and wherein the optimization objective includes a path with one of a maximized bandwidth, a maximized time with a preferred connection type, a minimized data packet loss rate, a minimized network latency, a minimized allowable jitter, a shortest travel distance, a quickest travel time, a maximized use of a preferred road type, and a minimized use of an undesirable road type, and wherein the user specified mobile network quality constraint includes at least one of a minimum allowable network bandwidth, a maximum allowable network latency, a maximum allowable packet loss rate, and a maximum allowable jitter; wherein generating the recommended path comprises generating a plurality of paths that satisfy the network quality constraint, and wherein the recommended path is one of the generated paths, and wherein the recommended path is selected from one of the plurality of paths that meets the optimization objective.