2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Кол-во метров на 1 градус широты и долготы: GIS, форма Земли
Сообщение07.03.2016, 14:25 


20/06/13
30
Здравствуйте!
По работе пришлось написать программку для генерации kml-файла для программы Google Земля (Google Earth).
Воспользовавшись разными онлайн-калькуляторами и взяв нужное из разных форумов собрал нужную программку на C#. Поставленную задачку выполнил.
Теперь хочу написать небольшую статью для научно-практической конференции.
Подозреваю, что приведенные ниже две функции являются приближением каких-то серьезных формул.

Может кто-нибудь подсказать, где можно почитать про исходные формулы, на основе которых были получены эти функции?
Откуда взялись используемые в этих функциях числовые константы?
Заранее благодарен!

P.S. Эти функции используются для вычисления количества метров на 1 градус в зависимости от местоположения на Земле.

Код:
        static double MetersPerDegreeLat(double latitude)
        {
            double lat_r = latitude * Math.PI / 180.0; // Latitude in radians
            double m_per_d = 111132.92 - 559.82 * Math.Cos(2 * lat_r) + 1.175 * Math.Cos(4 * lat_r);
            return m_per_d;
        }

        static double MetersPerDegreeLong(double latitude)
        {
            double lat_r = latitude * Math.PI / 180.0; // Latitude in radians
            double m_per_d = 111412.84 * Math.Cos(lat_r) - 93.5 * Math.Cos(3 * lat_r) + 0.118 * Math.Cos(5 * lat_r);
            return m_per_d;
        }

 Профиль  
                  
 
 Re: Помогите найти исходные формулы (кол-во метров на 1 градус)
Сообщение07.03.2016, 17:05 
Заслуженный участник
Аватара пользователя


09/09/14
6328
rahmatjon в сообщении #1104827 писал(а):
Может кто-нибудь подсказать, где можно почитать про исходные формулы, на основе которых были получены эти функции?
Посмотрите здесь.

 Профиль  
                  
 
 Re: Помогите найти исходные формулы (кол-во метров на 1 градус)
Сообщение07.03.2016, 20:25 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
По-моему, лучше просто запрограммировать точную (для эллипсоида) формулу для широты
$\frac{\pi}{180}(ab)^2\left((a\cos\varphi)^2+(b\sin\varphi)^2\right)^{-\frac 3 2}$
и аналогичную для долготы.

 Профиль  
                  
 
 Re: Помогите найти исходные формулы (кол-во метров на 1 градус)
Сообщение08.03.2016, 06:28 


20/06/13
30
svv в сообщении #1104896 писал(а):
По-моему, лучше просто запрограммировать точную (для эллипсоида) формулу для широты
$\frac{\pi}{180}(ab)^2\left((a\cos\varphi)^2+(b\sin\varphi)^2\right)^{-\frac 3 2}$
и аналогичную для долготы.

Вы о чем?
Что это за формула? Где о ней можно почитать?

-- 08.03.2016, 07:49 --

grizzly в сообщении #1104849 писал(а):
rahmatjon в сообщении #1104827 писал(а):
Может кто-нибудь подсказать, где можно почитать про исходные формулы, на основе которых были получены эти функции?
Посмотрите здесь.

Спасибо!

 Профиль  
                  
 
 Re: Помогите найти исходные формулы (кол-во метров на 1 градус)
Сообщение08.03.2016, 12:00 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
Эта формула даёт зависимость длины одного градуса меридиана (в смысле производной $\frac{ds}{d\varphi}$) от геодезической широты $\varphi$. Земная поверхность приближается эллипсоидом вращения с полуосями $a$ и $b$. Где почитать — не знаю, вывел её вчера в качестве упражнения. Расчёт занял порядка тетрадной странички. Запрограммируйте её и сравните результаты с Вашей функцией. Угол $\varphi$ в радианах (стандарт в математике и физике), но результат в метрах на градус. Значения констант возьмите такие:
Используется синтаксис C++
a=6378137.;          // экваториальный радиус
f=1./298.257223563; // полярное сжатие
b=a*(1-f);          // полярный радиус

По ссылке grizzly есть та же формула в других обозначениях:
Цитата:
The meridional radius of curvature at latitude phi is
M = a(1 - e2) / (1 - e2 sin(phi)^2)^(3/2)
Вкратце объясню, причём тут «меридиональный радиус кривизны». Кривизна плоской кривой (в нашем случае меридиана в меридиональной плоскости) — это угол поворота касательной за единицу длины кривой: $\frac{d\varphi}{ds}$. Той же величине равен угол поворота нормали к кривой на единицу длины. Радиус кривизны — это величина, обратная кривизне: $\frac{ds}{d\varphi}$, то есть количество метров на угол поворота нормали. Угол поворота нормали к поверхности при движении по меридиану, отсчитывая от направления нормали на экваторе, и есть геодезическая широта $\varphi$.

Ещё здесь.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group