Расчет расстояния по GPS координатам

kepler_62e

Для одного из проектоа было необходимо расчитать расстояние по координатам записанным мобильным приложением для протоколирования перемещений.

казалосьбы все сводится к расчету расстояния между двемя точками умноженному на некий коэфициент.

Но этот некий коэфициент будет разный для разных широт.  Например расстояние между меридианами будет максимальным на экваторе и равным нулю на северном полюсе. А если по двум точкам построить квадрат (по двум противоположным углам), то он на самом деле будет трапецией.

Но все таки если использовать в расчетах числа, допустим, с 20 знаками после запятой, то расчеты не столь будут отличатся. А вот если не учесть высоту, вернее ее перепад то здесь раскуем получить еще более не точные данные чем у китайского велокопютера.

Например  у нас есть две точки GPS (latitude,longitude,elevation):

  1. 2014-04-27T11:38:02Z, 50.879874, 34.808982, 142.400000, 16.000000, 0.000000, 0.000000
  2. 2014-04-27T11:39:03Z, 50.879840, 34.808827, 167.300000, 4.000000, 0.000000, 0.000000

Удельное расстояние ( метров на 1 градус  ) на изменение долготы (Lon, вдоль линии широты) будет изменяться, поэтому что бы не путаться мы будем использовать эту единицу расчитанную по конечной точке.

Итак, нам необходимо два удельных расстояния, по широте и долготе.

Для начала получим удельное расстояние по меридиану (УРМ). Одно не изменно для любой точки земного шара.

УРМ = Окружность земли / 360 градусов. 

УРМ = Радиус земли * 2 * Пи / 360 градусов. 

УРМ = 6371км * 2 * Пи / 360 градусов = 111,194926645 км / градус.

Теперь Удельное расстояние по паралели(УРП). Оно будет иметь разное значение для для разных широт.

УРП = Окружность по паралели / 360 градусов.

Для вычисления окружности по паралели нам необходимо знать ее радиус, у для радиуса — широту данной паралели.

Радиус паралели = Радиус земли * cos( Широты ).

Отсюда,

УРП = Радиус земли * cos( Широты )  * 2 * Пи / 360 градусов.

Забавно, но можно все упростить. «cos( Широты ) * ( Радиус земли * 2 * Пи / 360 градусов)«. Вторая  часть нам уже известна. Получается:

УРП = cos( Широты ) * УРМ.

УРП = cos( 50.879840 ) * УРМ = 0,630948827 * 111,194926645 км / градус =
= 70,158308514 км / градус

Расстояние между этими двумя чточками будет вычисляться по теореме Пифогора:

Расстояние = кв. клорень (расстояние по меридиану^2 + расстояние по паралели^2 )

Расстояние по меридиану = Разница широт * УРМ

Расстояние по меридиану = (50.879874 — 50.879840)  * 111,194926645 км / градус = 0,003780628 км

Расстояние по паралели = Разница долготы * УРП

Расстояние по паралели = (34.808982 — 34.808827) * 70,158308514 км / градус =
= 0,010874538 км

Ну и момент истинны:

Расстояние = кв. клорень (0,003780628^2 +0,010874538^2 ) =
= 0,011512981 км = 11,512981 м

Кстати кому интересно то мосмотреть пройденый путь по GPS-координатам или визуализировать GPX-файлы можно на этом сайте для велосипедистов motion.atf.li

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *