Need help with GPS and compass robot

Hello. I am trying to make a gps navigation robot with a compass that goes from way point to waypoint and back home. It just rotate right now and and won't go to the first waypoint. I attached the sketch.

TEST_TEST.ino (8.42 KB)

void Turning()
{
  calculateBearing();
  compass.read();

Figure out which way we are going, and then look at the compass. Yeah, right.

Going blindly in any given direction for a fixed period of time is NOT the way to go.

  distanceToWaypoint = calculateDistance();
  bearing = calculateBearing();

Both of these functions assume that global variables contain values in degrees, and call a function to convert them to radians. The second call, when the values are NOT in degrees, f**ks things up.