Ver Mensaje Individual
  #2  
Antiguo 09-05-2010
ses27coves ses27coves is offline
Miembro
 
Registrado: may 2010
Posts: 16
Reputación: 0
ses27coves Va por buen camino
Despues de varias hora revisando las formulas matematicas que ecfisa me ha facilitado mediante la pagina web, creo que esta es la funcion para realizar la conversion.
Lo he probado y parece que funciona con bastante presicion. Si alguien detecta algun error le agradeceria que lo mencionara para poder corregirlo.

Código Delphi [-]
function TForm1.utmtogeo(UtmX, UtmY, zona:integer): string;
var
fi, ni, mc, se, sd, a, a1, a2, j2, j4, j6, alfa, beta, ganma, bfi, b, zeta, xi, eta, sxi, delta, tau, sexas, radiantes:double;
begin
  fi:= UtmY / (6366197.724*0.9996);
  ni:= (6399593.626/Power((1+0.006739497*sqr(cos(fi))), 0.5))*0.9996;
  mc:= (6*zona-183);
  se:= UtmY;
  a:= (UtmX-500000)/ni;
  a1:= sin(2*fi);
  a2:= a1*Power((COS(fi)), 2);
  j2:= fi+(a1/2);
  j4:= (3*j2+a2)/4;
  j6:= (5*j4+a2*Power((COS(fi)),2))/3;
  alfa:= (3/4)*0.006739497;
  beta:= (5/3)*Power(alfa, 2);
  ganma:= (35/27)*Power(alfa, 3);
  bfi:= 0.9996*6399593.626*(fi-(alfa*j2)+(beta*j4)-(ganma*j6));
  b:= (se-bfi)/ni;
  zeta:= ((0.006739497*Power(a,2))/2)*Power(COS(fi),2);
  xi:= a*(1-(zeta/3));
  eta:= b*(1-zeta)+fi;
  sxi:= (EXP(xi)-EXP(-xi))/2;
  delta:= arcTAN(sxi/COS(eta));
  sd:= +(delta/PI)*180+mc;
  tau:= ARCTAN(COS(delta)*TAN(eta));
  radiantes:= fi+(1+0.006739497*Power(COS(fi),2)-(3/2)*0.006739497*sin(fi)*COS(fi)*(tau-fi))*(tau-fi);
  sexas:= +(radiantes/PI)*180;

  utmtogeo:= floattostr(sexas)+'&'+floattostr(sd);
end;
Responder Con Cita