Страница 1 из 2
В который раз преобразование GPS в X Y
Добавлено: 10 авг 2009, 09:49
kostyl_kostyl
Добрый день.
Прошу помощи в разъяснении алгоритма преобразования GPS координат в X Y проекцию на плоскости. Я пробовал преобразовывал по
формулам, но у меня ничего не получается. Суть в том что у меня есть точка в X, Y координатах (0; 0). Мне надо вычислить координаты X, Y если у меня есть координаты GpsX и GpsY в формате DD.DDDDDD относительно этой точки. Исходя из вышеуказанных формул я сделал допущение относительно отрезков dlat и dlon в том что они тоже начинаются относительно этой точки приравняв их начала нулям. Сответсвенно X = 63781370 *(1 - e ^ 2) * GpsX; Y = 63781370 * GpsY. Но у меня получилась не изогнутая проекция, то есть то же самое, что и взять просто Gps координаты и нарисовать ими на плоскости. Может кто пояснит в чем проблема и скажет как правильно преобразовать?
Заранее благодарю.
(пс. кстати что есть lat а что log если X - вправо на лево, а Y - снизу вверх )
Re: В который раз преобразование GPS в X Y
Добавлено: 10 авг 2009, 14:31
feya
А вы какую проекцию хотите в итоге получить?
lat - широта т.е. по оси Y
log - долгота т.е. по оси X
Re: В который раз преобразование GPS в X Y
Добавлено: 10 авг 2009, 14:43
kostyl_kostyl
Ну надо чтобы Х был с запада на восток. А У - от экватора на север. Мне надо нарисовать на плоскости объекты с Гугла по их GPS координатам.
Re: В который раз преобразование GPS в X Y
Добавлено: 10 авг 2009, 16:48
feya
Ну если вам не нужна какаято особая проекция то рисуйте просто:
x:=round([Ширина вашей плоскости]/2+Lon*([Ширина вашей плоскости]/360))
y:=round([Ширина вашей плоскости]/2-Lat*(([Ширина вашей плоскости]/2)/180))
Re: В который раз преобразование GPS в X Y
Добавлено: 10 авг 2009, 19:54
kostyl_kostyl
Не то что бы не нужна особая, - нужна. Мне нужна привязка к системе СИ , к метрам, чтобы я знал координаты всех точек в метрах относительно базовой (0;0) и мог вычислять расстояние между ними уже в метрах по стандартной формуле.
Re: В который раз преобразование GPS в X Y
Добавлено: 10 авг 2009, 22:01
feya
x:=radiusa*lon/2;
y:=radiusa*Ln(Tan(PI/4+lat/2)*Power((1-exct*Sin(lat))/(1+exct*Sin(lat)),exct/2))/2;
Для гугла:
radiusa=6378137
exct=0
Re: В который раз преобразование GPS в X Y
Добавлено: 11 авг 2009, 10:07
kostyl_kostyl
А в этой формуле надо тангенс ограничивать, а то у меня Y уходит за пределы диапазонов?
И еще, действительно ли это в метрах, почему именно так? Это расстояние в метрах от Гринвича получается?
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 00:09
feya
А в этой формуле надо тангенс ограничивать, а то у меня Y уходит за пределы диапазонов?
Нет, не надо.
И еще, действительно ли это в метрах
В метрах
почему именно так
Не знаю, не я придумывал)
Это расстояние в метрах от Гринвича получается?
[del]да[/del] Я дурак)
ЗЫ Вы на чем пишете?
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 09:39
kostyl_kostyl
feya писал(а):ЗЫ Вы на чем пишете?
На Delphi.
Логарифм отрицательного числа дает -NAN
Например lat = 52.626
tan(pi/4 + lat/2) = -2.39953
ln(-2.39953) = - NAN
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 10:06
Mavka
Виноват, ошибся.
tan(pi/4 + lat/2), т.к. pi/4 то lat нужно в радианах; или pi/4 = 45 градусов
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 10:57
feya
Да, lon и lat конечно в радианах.
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 11:56
kostyl_kostyl
А как перевести 52.626 в радианы? 52.626 взято из гугла. Я без понятия какие у них единицы, скорее всего DD.DDDDDD.
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 12:03
Mavka
radian = degree / 360 * (2 * pi)
2pi - полный оборот в радианах, соответствует 360 градусам
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 12:22
kostyl_kostyl
Перевел в радианы - другое дело, все стало на свои места. Спасибо. А Гривнич что гдето в Польше чтоли. Потому как ноль по Х у меня где-то там( ну или на западе Польши точно не разберу)?
Re: В который раз преобразование GPS в X Y
Добавлено: 12 авг 2009, 13:08
Mavka
Пожалуйста, будьте серьезней, вы задаете вопросы из школьного курса:
Гринвичский меридиан