Convertor на координати

24 отговора 1416 прегледа
#1

Convertor на координати

Имате ли идея дали в България съществува софтуер за конвертиране на геодезични координати 70 година(официалната за България) в географски координати и обратно?

Отговор
в отговор на Dim #2

Re: Convertor на координати

Има, разбира се. Мисля, че фирма Mapex е писала софтуера.
Но работи с точност 0.1 секунда.

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на Dim #3

Re: Convertor на координати

Ето и брошурата:

[линк]

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на TUONO #4

Re: Convertor на координати

Хм, този сайт не ми се отваря. А може ли да ми дадеш директен линк за download?

Отговор
в отговор на Dim #5

Re: Convertor на координати

Незнам защо не се отваря *.doc фаила. Кажи на какъв адрес да ти го изпратя?
Всъщост какво искаш да трансформираш, може да има и друго решение.

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на TUONO #6

Kakvo mi trqbva

Tuono, въпросът ми е свързан с един от твоите предишни постове. Разгледах ти сайта и видях тази програма -> [линк]. За съжаление не знам по каква причина, но не мога да я сваля(всичко останало го свалям). По принцип съм свикнал когато се касае до математика инструментите да си ги програмирам сам. Но за съжаление никога не съм изучавал геодезия и тук не мога да се оправя.
Та на въпроса- В България официалната координатна система е правоъгълна 70-та година. Доколкото съм запознат в нея, с цел секретност е заложена грешка, която я прави неконвертируема към която и да е било друга правоъгълна координатна система, а камо ли към UTM. Точно това търся - или някой да ме запознае с математическия апарат на това конвертиране или да си сваля софтуер който прави това. А моят майл е -> [email protected]

Отговор
в отговор на Dim #7

Re: Kakvo mi trqbva

1970 г. е проблемна за работам, защото БГ е разделена на 4 зони грубо казано с разлина ориентация. Не искам да ти описвам какво става ако се намираш в контактните зони на тези 4 парчета. Но ако ти се намираш в една зона и имаш координатите на дадени точки в 1970 и измериш с твоя GPS няколко точки в UTM, кото да използваш за трансформация, Хелмертовата трансформация върши чудесна работа.
Нали си изтеглил моята програма за Хелмертова транформация? С нея можеш да трансформираш координати между две произволни равнинни системи.
Пробвай с нея, ако ти върши работа ще ти изпратя формулите за да си направиш ти програма. Моята е съвсем аматьорска, защото не съм програмист. Например номерата на точките немогат да бъдат String, а само Real или Integer. Тъпо, ама навремето така съм разсъждавал.

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на TUONO #8

Re: Kakvo mi trqbva

Може ли да ми изпратиш повече информация за тези трансформации. Ако може и source codes на тжоите програми. Ако може ми изпрати и няколко реални примера за конвертиране на координати в този вид:

N gg mm ss,dd
E gg mm ss,dd

X: x,x
Y: y,y

Отговор
в отговор на Dim #9

Re: Kakvo mi trqbva

Ще ти изпратя всичко, но другата седмица. Source кода не е при мен в момента.

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на TUONO #10

Re: Kakvo mi trqbva

И на мен ми трябват тези неща, особено формулите. Искам да си довърша
програмата за векторизиране на бг-картите: garmin_gps@graffiti.net
Благодаря предварително!

Отговор
в отговор на Dim #11

1970 г. Официлна?

Май на тази тема има раздвижване. В работата геодезисти ми казаха че по-скоро 1970 г. е системата в която има най-много данни. Била въведена WGS84 - или по-скоро - европейския и аквивалент. Но трансформацията я знаели малко хора и се опитвали да печелят докато могат от нея.

Ако наистина е така - просто не се учудвам. Иначе нормално е да се публикува трансформацията. То така или иначе най-точните български карти май не са нашите.

... По добре Богат и здрав отколкото ...
Отговор
в отговор на DanailP #12

Re: 1970 г. Официлна?

В момента се въвежда новата официална координатна система. Но засега все още всички координати се изискват в 1970 г. Формулите са разсекретени, но това не може да принуди военните да ги публикуват. Всичко е заключено и не се пуска. Нали взимат по 8 лева на точка за да ти дадат координати, как ще ги пуснат публично!

Отговор
в отговор на DanailP #13

Re: 1970 г. Официлна?

Ей тук има отговори на някои от въпросите:
[линк]

Отговор
в отговор на garmin_gps #14

Re: Kakvo mi trqbva

Тук ми се мотае една програмака Transt, ДОС-овска, може да прехвърля от 1970 (XY) в 42/83 (XY и BL) и обратно. Малко трудно се работи ама става.

Отговор
в отговор на garmin_gps #15

Re: Kakvo mi trqbva

Ама аз ще напиша формулите за Хелмертовата трансформация. Тези от 1970 в WGS84 не ги знам. Дано утре не ги забравя тези формули и source code.

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на TUONO #17

Re: Kakvo mi trqbva

Просто ми е необходимо следното нещо:
Имам растерна карта в система КС1970 която съм спрегнал и векторизирал,
имам и две реперни точки по диагонал на картата в система WGS84.
Проблема е да намеря формули по които да трансформирам координатите
на всички точки от 1970 в WGS84 ползвайки двете реперни точки.
Мисля че дори проста последователност от транслация/ротация/мащабиране
би свършила работа за малък участък (до 10х10км).

Отговор
в отговор на Dim #18

Source code - Helmert

От тук можете да извадите формулите. След обяд ще обърна внимание на другите съобщения...


{Трансформация на GPS координати}
procedure TGPSKYFrm.TrnBtnClick(Sender: TObject);
begin
if (bENFl<>'') AND (bYXFl<>'') then
begin

if Fft<>'' then
begin
TrFDlg.Execute;
outFl:=TrFDlg.FileName;
TrPath.Caption:=outFl;
end;
if (Fft<>'') AND (outFl<>'') then
begin
if RGTrans.ItemIndex=0 then
begin
GPS1:=InYXDlg.FileName;
YX1:=InENDlg.FileName;
end;
if RGTrans.ItemIndex=1 then
begin
GPS1:=InENDlg.FileName;
YX1:=InYXDlg.FileName;
end;

AssignFile(GPS,GPS1);
Reset(GPS);
np:=0;
while NOT Eoln(GPS) do
begin
Readln(GPS);
begin
np:=np+1;
end;
end;
BasePLbl.Caption:=FloatToStrF(np,ffFixed,3,0);
CloseFile(GPS);
sumE:=0;
sumN:=0;
sumY:=0;
sumX:=0;
sumdY2:=0;
sumdX2:=0;
P1:=0;
P2:=0;
Q1:=0;
Q2:=0;
AssignFile(GPS,GPS1);
Reset(GPS);
AssignFile(YX,YX1);
Reset(YX);
while NOT Eoln(GPS) do
begin
Readln(GPS,Ng,E,N);
Readln(YX,Nl,Y,X);
begin
sumE:=sumE+E;
sumN:=sumN+N;
sumY:=sumY+Y;
sumX:=sumX+X;
end;
end;
CloseFile(YX);
CloseFile(GPS);
cE:=sumE/np;
cN:=sumN/np;
cY:=sumY/np;
cX:=sumX/np;
dcAb:=cE-cY;
dcOr:=cN-cX;
AssignFile(GPS,GPS1);
Reset(GPS);
AssignFile(YX,YX1);
Reset(YX);
while NOT Eoln(GPS) do
begin
Readln(GPS,Ng,E,N);
Readln(YX,Nl,Y,X);
begin
dE:=E-cE;
dN:=N-cN;
dY:=Y-cY;
dX:=X-cX;
dlAb:=dE-dY;
dlOr:=dN-dX;
P1:=P1+dX*dlAb;
P2:=P2+dY*dlOr;
Q1:=Q1+dY*dlAb;
Q2:=Q2+dX*dlOr;
sumdX2:=sumdX2+dX*dX;
sumdY2:=sumdY2+dY*dY;
end;
end;
CloseFile(YX);
CloseFile(GPS);
p:=(P1-P2)/(sumdX2+sumdY2);
q:=(Q1+Q2)/(sumdX2+sumdY2);
A:=dcOr+cY*p-cX*q;
B:=dcAb-cX*p-cY*q;
ALbl.Caption:=FloatToStrF(A,ffFixed,15,5);
BLbl.Caption:=FloatToStrF(B,ffFixed,15,5);
pLbl.Caption:=FloatToStrF(p,ffFixed,15,5);
qLbl.Caption:=FloatToStrF(q,ffFixed,15,5);
AssignFile(YX,YX1);
Reset(YX);
AssignFile(Err,'Err.txt');
Rewrite(Err);
while NOT Eoln(YX) do
begin
Readln(YX,Nl,Y,X);
begin
Et:=Y+X*p+Y*q+B;
Nt:=X-Y*p+X*q+A;
Writeln(Err,Nl:6:0,Et:12:3,Nt:12:3);
end;
end;
CloseFile(YX);
CloseFile(Err);
sumEY:=0;
sumNX:=0;
tp:=0;
AssignFile(GPS,GPS1);
Reset(GPS);
AssignFile(RepFl,'Report.txt');
Rewrite(RepFl);
AssignFile(Err,'Err.txt');
Reset(Err);
S_Date:=DateToStr(Date);
Writeln(RepFl,'Дата: ',S_Date);
Writeln(RepFl);
Writeln(RepFl,'Базови данни в СТАРА координатна система: ',bENFl);
Writeln(RepFl,'Базови данни в НОВА координатна система: ',bYXFl);
Writeln(RepFl);
Writeln(RepFl,'Номер ','Yo ','Xo ','Yn ','Xn ','Ms');
while NOT Eoln(GPS) do
begin
Readln(GPS,Ng,E,N);
Readln(Err,Nm,Ym,Xm);
sumEY:=sumEY+((E-Ym)*(E-Ym));
sumNX:=sumNX+((N-Xm)*(N-Xm));
repMs:=SQRT(((E-Ym)*(E-Ym))+((N-Xm)*(N-Xm)));
Writeln(RepFl,Ng:6:0,E:12:3,N:12:3,Ym:12:3,Xm:12:3,' ',repMs:6:3);
end;
Writeln(RepFl);
Writeln(RepFl);
Writeln(RepFl,'Брой базови точки: ',np);
Writeln(RepFl);
Writeln(RepFl,'Формула за транформация: Yn = Yo + pXo + qYo + B');
Writeln(RepFl,' Xn = Xo - pYo + qXo + A');
Writeln(RepFl);
Writeln(RepFl,'Стойтости на коефициентите: A = ',A:30:17);
Writeln(RepFl,' B = ',B:30:17);
Writeln(RepFl,' p = ',p:30:17);
Writeln(RepFl,' q = ',q:30:17);
CloseFile(RepFl);
My:=SQRT(sumEY/np);
Mx:=SQRT(sumNX/np);
Ms:=SQRT(Mx*Mx+My*My);
M1Val.Caption:=FloatToStrF(My,ffFixed,3,3);
M2Val.Caption:=FloatToStrF(Mx,ffFixed,3,3);
M3Val.Caption:=FloatToStrF(Ms,ffFixed,3,3);
CloseFile(Err);
CloseFile(GPS);
Erase(Err);
AssignFile(YXft,Fft);
Reset(YXft);
npt1:=0;
while NOT Eoln(YXft) do
begin
Readln(YXft);
begin
npt1:=npt1+1;
end;
end;
CloseFile(YXft);
TrpLbl.Caption:=FloatToStrF(npt1,ffFixed,3,0);
AssignFile(YXft,Fft);
Reset(YXft);
AssignFile(YXtr,outFl);
Rewrite(YXtr);
npt2:=0;
while NOT Eoln(YXft) do
begin
Readln(YXft,Nl,Y,X);
begin
Et:=Y+X*p+Y*q+B;
Nt:=X-Y*p+X*q+A;
Writeln(YXtr,Nl:6:0,Et:12:3,Nt:12:3);
npt2:=npt2+1;
pr:=(npt1/npt2)*100;
ProG.Progress:=Ceil(pr);
end;
end;
ProG.Progress:=100;
CloseFile(YXft);
CloseFile(YXtr);
end;
end;
if (bENFl='') OR (bYXFl='') then MessageDlg('Няма данни за базовите точки',mtError,[mbOK],0);

end;
{Трансформация на GPS координати}

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на garmin_gps #19

Re: Kakvo mi trqbva

Изпращаш ми фаил:
Number Y X или Number B L в текстов формат и ще ти ги върна трансформирани данните.

Num Y X
1 232 546
2 124 254
.....................
.....................

"...от къде идваш и на къде отиваш..."
Отговор
в отговор на bobo #20

Transt

Може ли да я качиш някъде или да ми я пратиш на майла тази Transt?
dim_cr(at)mail.bg

Отговор