Доброго времени суток! Уже замучился с этими координатами). Живу я на территории Саха(якутия) п. Хандыга. В гуглмапе координаты: 62654648 135550605. Есть данные от пользовательской сетки: dx=+23.92; dy=-141.27; dz=-81; da=-108; df=+0.00480795; utm=2499997; исходная широта 0.0; Свою зону я не знаю. Маршрут делаю в навигаторе garmin. Если смотрю файлы гармина, то точки имеют вид: <rtept lat="62.659125700592995" lon="135.55171731859446". И есть у меня карты местности масштабами: 1:25000 и 1:50000 в программа "ГИС Панорама Мини". В нем прямоугольные координаты вида: х(север), у(восток). Например, если ввести точку вручную в панораме (карта масштабом:250000) по wgs84(градусы): 62.64807362 135.57017638 она по прямоугольной х(север), у(восток) приобретает вид: 6949333.080000 23529151.880000 А точка на карте (с масштабом:50000) по wgs84(градусы): 62.60602681 135.17616811 по прямоугольной х(север), у(восток) приобретает вид: 694459.939208 23508959.495617 Короче с gpx беру данные вида lat и lon: 62,659125700592995 135,55171731859446 62,659125700592995 135,55171731859446 62,654938688501716 135,56992943398654 62,654938688501716 135,56992943398654 62,652247175574303 135,56472594849765 62,649854561313987 135,55757123976946 62,649854561313987 135,55757123976946 62,649854561313987 135,55757123976946 62,65678882598877 135,55766344070435 62,659406661987305 135,54770708084106 62,660022815689445 135,56797821074724 62,659435495734215 135,55333603173494 62,659656777977943 135,55076513439417 62,659656777977943 135,55076513439417 62,65916995704174 135,55114600807428 Их надо перевести на карту с прямоугольными координатами вида: х(север), у(восток). Подскажите пожалуйста формулу (не готовую программу) для перевода с координат gpx в прямоугольные. В интернете нарыл "формулу пересчета координат из WGS-84 в СК-42 и обратно" и написал в Дельфи,но после ее работы 62.64807362 135.57017638 никак не становится: 6949333.080000 23529151.880000 (меняется только 11 цифра после запятого). По моему я перевожу только с wgs-84 в ск-42. Теперь нужно перевести в прямоугольные? Вот сама формула: const pi=3.14159265358979; ro=206264.8062; //эллипсоид красовского ap=6378245; alp=1/298.3; //0.00335232986925914 e2p=2*alp-alp*alp;//0.00669342162296594 //эллипсод WGS84 aw=6378137; alw=1/298.257223563; //0.00335281066474748 e2w=2*alw-alw*alw;//0.0066943799901413 a=(ap+aw)/2; //6378191 e2=(e2p+e2W)/2; //0.0066939 da=aw-ap; //-108 de2=e2w-e2p;//9.58367175373768e-7 //линейные элементы трансформирования dx=23.92; dy=-141.27; dz=-80.9; //угловые элементы трансформирования wx=0; wy=0; wz=0; ms=25000;//масштабный элемент трансформирования type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Button2: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N4: TMenuItem; Label1: TLabel; N3: TMenuItem; Memo2: TMemo; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1;filename:string; implementation {$R *.dfm} Function dB(Bd,Ld,H:double):double; var B, L, M, N,skb1:double; begin B:= Bd * Pi/180; L:= Ld * Pi/180; skb1:=n/a*e2*sin(b)*cos(b)*da+(sqr(n)/sqr(a)+1)*n*sin(b)*cos(b)*de2/2-(dx*cos(l)+dy*sin(l))*sin(b)+dz*cos(b); M:= a * (1 - e2) / sqrt((1 - e2 * Sin(b)*sin(b))*(1 - e2 * Sin(b)*sin(b))*(1 - e2 * Sin(b)*sin(b))) ; N:= a /sqrt(1 - e2 * sqr(Sin(B))); dB:= ro / (M + H) * skb1 - wx * Sin(L) * (1 + e2 * Cos(2 * B))+ wy * Cos(L) * (1 + e2 * Cos(2 * B))- ro * ms * e2 * Sin(B) * Cos(B); End; Function dL(Bd, Ld, H:double):double; Var B, L, N:double; begin B:=Bd * Pi / 180; L:= Ld * Pi / 180; N:= a / sqrt(1 - e2 * Sin(B)*sin(b)); dL:= ro / ((N + H) * Cos(B)) * (-dx * Sin(L) + dy * Cos(L))+ sin(B)/cos(b) * (1 - e2) * (wx * Cos(L) + wy * Sin(L)) - wz; End; Function WGS84Alt(Bd, Ld, H:double):double; var B, L, N, dH:double; begin B:=Bd * Pi / 180; L:= Ld * Pi / 180; N:= a / sqrt(1 - e2 * Sin(B)*sin(b)); dH:= -a / N * da + N * Sin(B) *Sin(B) * de2 / 2 + (dx * Cos(L) + dy * Sin(L)) * Cos(B) + dz * Sin(B)- N * e2 * Sin(B) * Cos(B) * (wx / ro * Sin(L) - wy / ro * Cos(L))+ (a *a/ N + H) * ms; WGS84Alt:= H + dH; End; Function WGS84_SK42_Lat(Bd, Ld, H:double):double; begin WGS84_SK42_Lat:=Bd - dB(Bd, Ld, H) / 3600; End; Function SK42_WGS84_Lat(Bd, Ld, H:double):double; begin SK42_WGS84_Lat:= Bd + dB(Bd, Ld, H) / 3600; End; Function WGS84_SK42_Long(Bd, Ld, H:double):double; begin WGS84_SK42_Long:=Ld - dL(Bd, Ld, H) / 3600; End; Function SK42_WGS84_Long(Bd, Ld, H:double):double; begin SK42_WGS84_Long:= Ld + dL(Bd, Ld, H) / 3600; End;
Добрый день (вечер) Так? 6950557.632 23528196.488 6950557.632 23528196.488 6950099.096 23529134.183 6950099.096 23529134.183 6949796.776 23528870.033 6949526.924 23528505.494 6949526.924 23528505.494 6949526.924 23528505.494 6950299.803 23528503.543 6950587.194 23527990.654 6950664.849 23529029.161 6950592.870 23528279.168 6950616.405 23528147.172 6950616.405 23528147.172 6950562.314 23528167.160
SWK, ищите здесь на форуме, тема была, как создать пользовательскую систему координат в навигаторе. В далёком 2001 году я настроил навигатор гармин етрекс номер не помню уже, так мои бродяги и сами не блудили в лесах-горах, так ещё и кого надо точно выводили на необходимые объекты. Хотя на пункте ГГС расхождение с каталожным было около 20 метров.
Спасибо всем. Разобрался. --- Сообщения объединены, 17 апр 2016, Оригинальное время сообщения: 17 апр 2016 --- SWK -именно так.