Страница 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
				Пожалуйста, будьте серьезней, вы задаете вопросы из школьного курса:
Гринвичский меридиан