Calcular ruta gps

Estoy haciendo un coche con gps para un trabajo del instituto y quiero que poniendole dos coordenadas, un codigo calcule el angulo y la distancia.

He creado este codigo basandome en información de internet pero solo funciona aveces.

Podriais decirme que hago mal?

// a = Latitud1
// b = Longitud1
// c = Latitud2
// d = Longitud2

float x = d - b;
float y = c - a;
double m = ((double)x / (double)y);

m = Math.Atan(m);    //Calcula el angulo en radiantes

double tan = m * (180/Math.PI);    //Pasa de radiantes a grados