A method for maneuvering a marine vessel powered by a propulsion system , the method comprising: accepting inputs to an electronic navigation device ; generating a desired track based on the inputs, wherein the desired track includes a series of waypoints, each waypoint in the series of waypoints being associated with a respective heading; and sending position and orientation information corresponding to each waypoint and its associated heading to a control module ; wherein, based on the position and orientation information, the control module generates steering and thrust commands that are required to maneuver the marine vessel from a current waypoint and heading in the series to a following waypoint and heading in the series; and wherein, according to the steering and thrust commands, the propulsion system thereafter propels the marine vessel along the desired track to each waypoint and its associated heading in succession; characterized in that the control module generates the steering and thrust commands by treating the current waypoint and heading as an actual position and heading of the marine vessel and the following waypoint and heading as a target waypoint and heading, and by carrying out a station keeping method according to which the control module calculates left/right, fore/aft, and yaw commands required to drive a position error between the current waypoint and the following waypoint and a heading error between the current heading and the following heading to zero; and the control module determines when and how much corrective action to take according to a three-dimensional, proportional, integral, and derivative control algorithm. accepting inputs to an electronic navigation device ; generating a desired track based on the inputs, wherein the desired track includes a series of waypoints, each waypoint in the series of waypoints being associated with a respective heading; and sending position and orientation information corresponding to each waypoint and its associated heading to a control module ; wherein, based on the position and orientation information, the control module generates steering and thrust commands that are required to maneuver the marine vessel from a current waypoint and heading in the series to a following waypoint and heading in the series; and wherein, according to the steering and thrust commands, the propulsion system thereafter propels the marine vessel along the desired track to each waypoint and its associated heading in succession; characterized in that the control module generates the steering and thrust commands by treating the current waypoint and heading as an actual position and heading of the marine vessel and the following waypoint and heading as a target waypoint and heading, and by carrying out a station keeping method according to which the control module calculates left/right, fore/aft, and yaw commands required to drive a position error between the current waypoint and the following waypoint and a heading error between the current heading and the following heading to zero; and the control module determines when and how much corrective action to take according to a three-dimensional, proportional, integral, and derivative control algorithm. <EOS>