2014 dxdy logo

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

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


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


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



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


20/06/13
27
Здравствуйте!
По работе пришлось написать программку для генерации 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
10673
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
27
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
10673
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 ] 

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



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

Сейчас этот форум просматривают: Mikhail_K


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

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