In navigation, what's the difference between bearing, heading, direction, and course?
Solution 1:
Bearing is regularly defined as the direction (relative to true north) in which your destination lies. If you could go in a straight line to your destination, this would be the most direct way of getting there.
You also have relative bearing, where the front of the vehicle is considered "north"; you'll see this when pilots claim, for example, that something is "at your 3 o'clock"; in naval terminology, port (left) and starboard (right) are always relative to the bow (front of the vessel).
Heading is the direction your face/nose/front/bow is currently pointing at (relative to true north), assuming default movement by your vehicle's impulse mechanism is forward. If there are no obstacles between you and your destination, and nothing aside from your vehicle's own impulse mechanism is moving it, heading should always be equal to bearing.
Course describes the entire planned route to get to your destination. A course correction implies that your planned route encountered an obstacle, and that you have to correct that plan.
As an example, let's assume a car is the vehicle, and it's navigating in a standard grid-like street structure. If you're at point (0, 0) with your car facing north and your destination is at (3, 3), your course would be "Three blocks north, then three blocks east". Your bearing at the start of your journey would be north-east, and your heading would be north, since that's the way your car is facing.
After you travel three blocks north, you're stopped at a red light. You should plan to turn right, to change your heading to east, since your bearing is now east. Your remaining course is "3 blocks east".
In aviation, where winds can and often will push you off-course, heading is rarely equal to bearing when the total travel distance is large. This makes for frequent course corrections to account for wind.
In my opinion, direction is the most basic term of all, and describes a directed vector between two points.
For your example, it seems like the proper phrasing would be "We are heading north, but we're being pushed off-course eastwards."
Solution 2:
Bearing is the direction to an external object, which is obviously an essential part of navigation. So "your bearing is 180 degrees" is not meaningful; "your bearing is 180 degrees from the lighthouse" is helpful (sometimes expressed as "0 degrees to the lighthouse", but that's another question).
Heading is what you are looking for to express the direction you are facing (I think Wikipedia's explanation is confusing; yes, it is expressed as an angle, but only when necessary to reduce it to numbers: 'heading due west' is perfectly normal.)
There is no single word to express the direction you are actually travelling in, probably because there are so many components (wind, leeway, current, pilot error...). Course made good or track over ground are probably closest.