У меня есть 2 координаты в Длинном формате Lat.
Как я определяю от Точки (например, Нью-Йорк 37.149472,-95.509544) направление в градусах для указания на B (например, Торонто 40.714269,-74.005973)
Я ищу значение как "340 градусов"
В C#
Если вы хотите, чтобы подписать постоянный подшипник, вы не хотите, чтобы максимально короткий (большой круг), который вы хотите, чтобы линия Rhumb
преобразование сценариев подвижного типа для этого
static double DegreeBearing(
double lat1, double lon1,
double lat2, double lon2)
{
var dLon = ToRad(lon2-lon1);
var dPhi = Math.Log(
Math.Tan(ToRad(lat2)/2+Math.PI/4)/Math.Tan(ToRad(lat1)/2+Math.PI/4));
if (Math.Abs(dLon) > Math.PI)
dLon = dLon > 0 ? -(2*Math.PI-dLon) : (2*Math.PI+dLon);
return ToBearing(Math.Atan2(dLon, dPhi));
}
public static double ToRad(double degrees)
{
return degrees * (Math.PI / 180);
}
public static double ToDegrees(double radians)
{
return radians * 180 / Math.PI;
}
public static double ToBearing(double radians)
{
// convert radians to degrees (as bearing: 0...360)
return (ToDegrees(radians) +360) % 360;
}
// verify against the website example
DegreeBearing(50.36389,-4.15694,42.35111,-71.04083);
Если вы посмотрите на http://www.movable-type.co.uk/scripts/latlong.html имеет JavaScript, вы можете переписать в C #.