Я обнаружил решение этого вопроса на C #, но я не могу перевести его в один запрос T-SQL, поскольку моя реализация на C # требует ветвления (если иначе).
Я также нашел следующее решение C #, которое можно преобразовать в один запрос T-SQL, но оно не дает правильных результатов.
public static double GetAzimuth(WGSCoord c1, WGSCoord c2) {
var lat1 = DegToRad(c1.Latitude);
var lon1 = DegToRad(c1.Longitude);
var lat2 = DegToRad(c2.Latitude);
var lon2 = DegToRad(c2.Longitude);
return RadToDeg(Math.Asin(Math.Sin(lon1 – lon2) * Math.Cos(lat2) / Math.Sin(Math.Acos(Math.Sin(lat2) * Math.Sin(lat1) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Cos(lon2 – lon1)))));
}
Код из Тамир Хасон - Просто код
Может ли кто-нибудь исправить приведенный выше код или предложить альтернативное решение?