You use the dot product of the two vectors, this gives the cosine of the angle between them by projecting the first vector onto the second:
A(dot)B = mod(A) x mod(B) x cos(angle)
Where:
A = ax+by = (a, b)
B = mx+ny = (m, n)
And so:
A(dot)B = am + bn
mod(A) = sqrt(a^2 + b^2)
mod(B) = sqrt(m^2 + n^2)
PS. I'm guessing that this is for some kind of GPS work? In which case, you can't truly approximate lat and long on a 2D plane without enormous errors unless points are _very_ close together. Surface of a sphere is a 1st order approximation, but one that gives errors over larger distances, an ellipsoid is better still.
Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.
A(dot)B = mod(A) x mod(B) x cos(angle)
Where:
A = ax+by = (a, b)
B = mx+ny = (m, n)
And so:
A(dot)B = am + bn
mod(A) = sqrt(a^2 + b^2)
mod(B) = sqrt(m^2 + n^2)
Therefore:
angle = cos<sup>-1</sup>((am + bn) / (sqrt(a^2 + b^2) * sqrt(m^2 + n^2))
And you can work out your vectors from (restarting the notation usage!):
a: (m, n)
b: (o, p)
c: (q, r)
A = ba = (m - o, n - p)
B = bc = (q - o, r - p)
Sorry for the horrendous notation: its impossible to write vector math on the web!
Andy