Вычисление расстояния между двумя координатами широты и долготыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Вычисление расстояния между двумя координатами широты и долготы

Сообщение Anonymous »

Я вычисляю расстояние между двумя геокоординатами. Я тестирую свое приложение с 3-4 другими приложениями. Когда я рассчитываю расстояние, я обычно получаю в среднем 3,3 мили, тогда как другие приложения получают 3,5 мили. Это большая разница для вычислений, которые я пытаюсь выполнить. Есть ли хорошие библиотеки классов для расчета расстояния? Я вычисляю это на C# следующим образом:

Код: Выделить всё

public static double Calculate(double sLatitude,double sLongitude, double eLatitude,
double eLongitude)
{
var radiansOverDegrees = (Math.PI / 180.0);

var sLatitudeRadians = sLatitude * radiansOverDegrees;
var sLongitudeRadians = sLongitude * radiansOverDegrees;
var eLatitudeRadians = eLatitude * radiansOverDegrees;
var eLongitudeRadians = eLongitude * radiansOverDegrees;

var dLongitude = eLongitudeRadians - sLongitudeRadians;
var dLatitude = eLatitudeRadians - sLatitudeRadians;

var result1 = Math.Pow(Math.Sin(dLatitude / 2.0), 2.0) +
Math.Cos(sLatitudeRadians) * Math.Cos(eLatitudeRadians) *
Math.Pow(Math.Sin(dLongitude / 2.0), 2.0);

// Using 3956 as the number of miles around the earth
var result2 = 3956.0 * 2.0 *
Math.Atan2(Math.Sqrt(result1), Math.Sqrt(1.0 - result1));

return result2;
}
Что я могу делать не так? Должен ли я сначала рассчитать это в км, а затем конвертировать в мили?

Подробнее здесь: https://stackoverflow.com/questions/636 ... oordinates
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»