code: def goto(dNorth, dEast, gotoFunction=vehicle.simple_goto):
      
      
      currentLocation = vehicle.location.global_relative_frame
      targetLocation = get_location_metres(currentLocation, dNorth, dEast)
      targetDistance = get_distance_metres(currentLocation, targetLocation)
      gotoFunction(targetLocation)
      
      #print "DEBUG: targetLocation: %s" % targetLocation
      #print "DEBUG: targetLocation: %s" % targetDistance
  
      while vehicle.mode.name=="GUIDED": #Stop action if we are no longer in guided mode.
          #print "DEBUG: mode: %s" % vehicle.mode.name
          remainingDistance=get_distance_metres(vehicle.location.global_relative_frame, targetLocation)
          print("Distance to target: ", remainingDistance)
          if remainingDistance<=targetDistance*0.01: #Just below target, in case of undershoot.
              print("Reached target")
              break;
          time.sleep(2)
docs: Moves the vehicle to a position dNorth metres North and dEast metres East of the current position.
  
      The method takes a function pointer argument with a single `dronekit.lib.LocationGlobal` parameter for 
      the target position. This allows it to be called with different position-setting commands. 
      By default it uses the standard method: dronekit.lib.Vehicle.simple_goto().
  
      The method reports the distance to target every two seconds.