function [fi,la,h] = hirvonen(x,y,z,a,e2) i=1; p=sqrt(x^2+y^2); B1 =atan(z/(p*(1-e2))); etykieta = 0; while etykieta < 1 if i ~= 1 B1 = B2; end; N = a/(sqrt(1-e2*sin(B1)^2)); H = (p/cos(B1))-N; B2 = atan((z/p)*(1-(e2*(N/(N+H))))^(-1)); if abs(B2-B1)<(0.000005/206265) etykieta = 1; end; i = i+1; end; N = a/(sqrt(1 - e2 * sin(B2) ^ 2)); fi = B2; h = p/cos(B2) - N; la = atan(y/x); if la <0 la = la + pi; end; h = roundn(h, -3);