Am un receiver de GPS care se conecteaza la interfata seriala a calculatorului. Am reusit sa citesc de acolo latitudinea si longitudinea. Acuma doresc sa le transform in coordonate carteziene (x,y,z).
Va arat ce am facut pana acuma:
a=6378245;
b=6356863.019;
h=37.5; -inaltimea geoidului
e=sqrt((a^2-b^2)/a^2); -eccentricity
latit:(46*3600+46*60+43.659)*3600; -latitudinea in grade
long:(23*3600+36*60+41.513)*3600; -longitudinea in grade
n=a/sqrt(1-e^2*sind(latit)*sind(latit)); -sind sinusul in grade(degree)
xA:((n+h)*cosd(latit)*cosd(long));
yA:((n+h)*cosd(latit)*sind(long));
zA:(((b^2/a^2)*n+h)*sind(latit));
SF=-6.4401; -factorul de scara
s=1+SF*10^-6;
rx=1.47607;ry=-6.47807;rz=1.81491; -parametri atasati clujului
dx=-163.9538;dy=133.5520;dz=242.2603;
xB=s*(xA-yA*rz+ry*zA)+dx
yB=s*(xA*rz+yA-rx*zA)+dy
zB=s*(-xA*ry+yA*rx+zA)+dz
Va rog sa-mi spuneti cu ce gresesc, multumesc anticipat.
unde ii :( ii defapt = (
postez din nou sa se vada clar:D
a = 6378245; -Krassowsky 1940
b = 6356863.019;
h = 37.5; -inaltimea geoidului
e = sqrt((a^2-b^2)/a^2); -eccentricity
latit = (46*3600+46*60+43.659)/3600; -latitudinea in grade
long = (23*3600+36*60+41.513)/3600; -longitudinea in grade
n = a/sqrt(1-e^2*sind(latit)*sind(latit)); -sind sinusul in grade(degree)
xA = ((n+h)*cosd(latit)*cosd(long));
yA = ((n+h)*cosd(latit)*sind(long));
zA = (((b^2/a^2)*n+h)*sind(latit));
SF = -6.4401; -factorul de scara
s = 1+SF*10^-6;
rx = 1.47607;ry = -6.47807;rz = 1.81491; -parametri atasati clujului
dx = -163.9538;dy= 133.5520;dz = 242.2603;
xB = s*(xA-yA*rz+ry*zA)+dx
yB = s*(xA*rz+yA-rx*zA)+dy
zB = s*(-xA*ry+yA*rx+zA)+dz