Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Transformar coordenadas utm para google maps (https://www.clubdelphi.com/foros/showthread.php?t=67837)

ses27coves 08-05-2010 18:52:04

Transformar coordenadas utm para google maps
 
Hola.

He esta buscado la forma de convertir el formato de coordenadas UTM a geodesicas, que son las aceptadas en google maps, ya que estoy desarrollando una aplicacion en delphi. Pero no consigo encontrar la forma de hacerlo.

Alguien sabe como hacerlo?

ecfisa 08-05-2010 20:54:07

Hola ses27coves.

En esta dirección, explican como realizar la conversión:

http://www.forocoches.com/foro/showthread.php?t=390347

Saludos.

ses27coves 08-05-2010 21:09:55

Gracias por la pagina web. Por lo que veo explica el calculo bastante bien, aunque tendre que desenpolbar los libros de matematicas para desarrollarlo.

ses27coves 09-05-2010 00:25:44

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;


La franja horaria es GMT +2. Ahora son las 10:52:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi