И снова возвращаясь к PROJ4

Системы координат, проекции, преобразования, привязка
Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

И снова возвращаясь к PROJ4

Сообщение Michael2000 » 19 июн 2017, 06:38

Была уже куча тем и много обсуждений. Но всё таки пока сам не наступишь на грабли так и не поймешь в чём дело.
Просьба гуру в работе с библиотекой PROJ4 пояснить в чём я ошибаюсь.
Есть две проекции:
МСК-70 зона 3
+proj=tmerc +ellps=krass +towgs84=24,-123,-94,-0.02,0.25,0.13,0.13,1.1 +units=m +lon_0=80.73333333333 +lat_0=0 +k_0=1 +x_0=3250000 +y_0 =-5912900.566
и
МСК-70 зона 4
+proj=tmerc +ellps=krass +towgs84=24,-123,-94,-0.02,0.25,0.13,0.13,1.1 +units=m +lon_0=83.73333333333 +lat_0=0 +k_0=1 +x_0=4250000 +y_0 =-5912900.566
в Delphi пытаюсь перевести координаты из одной зоны в другу, вот что делаю:
procedure TForm3.Button1Click(Sender: TObject);
var P1, P2: Pointer; i: Integer;
X, Y: PDoubleArray;
begin
P1 := pj_init_plus('+proj=tmerc +ellps=krass +towgs84=24,-123,-94,-0.02,0.25,0.13,0.13,1.1 +units=m +lon_0=83.73333333333 +lat_0=0 +k_0=1 +x_0=4250000 +y_0=-5912900.566');
P2 := pj_init_plus('+proj=tmerc +ellps=krass +towgs84=24,-123,-94,-0.02,0.25,0.13,0.13,1.1 +units=m +lon_0=80.73333333333 +lat_0=0 +k_0=1 +x_0=3250000 +y_0=-5912900.566');
New(X); New(Y);
X^[0] := StrToFloat(Edit1.Text);
Y^[0] := StrToFloat(Edit2.Text);
i := pj_transform(P1, P2, 1, 1, X, Y, nil);
Label1.Caption := String(pj_strerrno(i));
Edit3.Text := FloatToStr(X^[0]);
Edit4.Text := FloatToStr(Y^[0]);
end;
На входе даётся точка
X = 355256.85
Y = 4333607.02
на выходе
X = 3250000
Y = 4089236.93154376
Вопрос, что я делаю неправильно?

trir
Гуру
Сообщения: 2877
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 446
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: И снова возвращаясь к PROJ4

Сообщение trir » 19 июн 2017, 06:48

4249999.999978445, 4089236.9318062495
это не МСК-70 зона 3

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 19 июн 2017, 07:14

Я знаю, вот и пытаюсь понять свою ошибку.

trir
Гуру
Сообщения: 2877
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 446
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: И снова возвращаясь к PROJ4

Сообщение trir » 19 июн 2017, 07:19

входные данные неправильные

Игорь Белов
Гуру
Сообщения: 1378
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 840
Откуда: Казань

Re: И снова возвращаясь к PROJ4

Сообщение Игорь Белов » 19 июн 2017, 07:20

Michael2000 писал(а):Вопрос, что я делаю неправильно?
Меняете местами X и Y.

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 19 июн 2017, 07:30

Игорь Белов писал(а):
Michael2000 писал(а):Вопрос, что я делаю неправильно?
Меняете местами X и Y.
Сэр, вы гений, заработало :D

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 21 июн 2017, 15:22

И снова здравствуйте. Недавно, с божьей помощью и гуру местного форму начал разбираться с библиотекой PROJ4. С подсказки знающих людей умудрился сделать пересчёт координат из одной зоны МСК в другую. От счастья долго писал кипятком на стену и называл себя всякими хорошими словами. НО, отрезвление пришло очень быстро. Пока работаю с координатами на плоскости проблем не было, но как только я попытался произвести пересчёт из WGS в МСК ко мне прилетела синяя птица обломинго.
Дано, исходная проекция:
+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
Дано, конечная проекция:
+proj=tmerc +ellps=krass +towgs84=24,-123,-94,-0.02,0.25,0.13,0.13,1.1 +units=m +lon_0=83.73333333333 +lat_0=0 +k_0=1 +x_0=4250000 +y_0 =-5912900.566
и как обычно пара координат:
lon=85.759586
lan=57.589965
Используя выше описанные процедуры пытаемся произвести пересчёт и вуаля, система пишет no system list, errno: 100 и возвращает те же самые значения.
Традиционный вопрос - что я делаю неправильно?
Последний раз редактировалось Michael2000 21 июн 2017, 15:57, всего редактировалось 1 раз.

trir
Гуру
Сообщения: 2877
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 446
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: И снова возвращаясь к PROJ4

Сообщение trir » 21 июн 2017, 15:31

код приведи

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 21 июн 2017, 15:45

исходники описаны в первом посте

Игорь Белов
Гуру
Сообщения: 1378
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 840
Откуда: Казань

Re: И снова возвращаясь к PROJ4

Сообщение Игорь Белов » 21 июн 2017, 15:49

Попробуйте перевести географические координаты из градусов в радианы.

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 21 июн 2017, 15:58

Ага, перевод в радианы перестал давать ошибку, но координаты как то далеки от МСК-70 зона 4.
При вводе
lon=85.759586
lan=57.589965
на выходе получаю
X=9576701.93982527
Y=4041475.07129999

freeExec
Завсегдатай
Сообщения: 472
Зарегистрирован: 23 апр 2011, 10:32
Проекты: 1
Репутация: 52
Откуда: Ульяновск

Re: И снова возвращаясь к PROJ4

Сообщение freeExec » 21 июн 2017, 16:10

А почему у вас 8 параметров преобразования, походу 0.13 лишнее.

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 21 июн 2017, 16:17

freeExec писал(а):А почему у вас 8 параметров преобразования, походу 0.13 лишнее.
Поясните свою мысль.

freeExec
Завсегдатай
Сообщения: 472
Зарегистрирован: 23 апр 2011, 10:32
Проекты: 1
Репутация: 52
Откуда: Ульяновск

Re: И снова возвращаясь к PROJ4

Сообщение freeExec » 21 июн 2017, 16:20

>>+towgs84=24,-123,-94,-0.02,0.25,0.13,0.13,1.1
3 сдвига по осям: 24,-123,-94
3 вращения по ним же:-0.02,0.25,0.13
масштаб: 0.13
???: 1.1 (который масштаб)

Michael2000
Интересующийся
Сообщения: 25
Зарегистрирован: 19 июн 2017, 06:21
Репутация: 0

Re: И снова возвращаясь к PROJ4

Сообщение Michael2000 » 21 июн 2017, 16:35

Ага, понял вас. Но тут у меня с параметрами туго, я только в самом начале и внятно ответить что для чего не могу. ПО поводу параметров... Скачал текстовый файл с одного геодезического форума. В этом файле приведены параметры для всех зон МСК. Вот от туда я и брал значения.

P.S. если убрать лишний параметр результат сильно не меняется

Ответить

Вернуться в «Координаты и привязка»