Как рассчитать кривую меридиана на проекции Меркатора

Кто-нибудь знает, как рассчитать кривую (а не параболу) меридиана на проекции Меркатора?

Например,

Я получил долготу 1: 9,93, широту 1: 60,02

и долгота2: -44,02, широта2: 56,3

Наименьшее расстояние рассчитывается по формуле:

    var d2r = (Math.PI / 180.0);
    double dlong = (lon2 - lon1) * d2r;
    double dlat = (lat2 - lat1) * d2r;
    double a = Math.Pow(Math.Sin(dlat / 2.0), 2) + Math.Cos(lat1 * d2r) * 
    Math.Cos(lat2 * d2r) * Math.Pow(Math.Sin(dlong / 2.0), 2);
    double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));

    double distance = 6367 * c;

Я хочу нарисовать меридиан с:

    Graphics.Draw.Arc(Pen, Rectangle, startAngle, sweepAngle)      

Мне нужно рассчитать высоту, ширину, startAngle и sweepAngle моего меридиана. Великий круг зависит от центра Земли и не одинакового размера в каждом месте на карте Меркатора. Это зависит от значения широты. Но я еще не нашел правильную формулу.

Заранее спасибо.

0 ответов

Другие вопросы по тегам