A conversão entre os formatos HDD.DDDDD, HDD MM.MMM e HDD MM SS.SS é mais simples do que a malta pensa. A sério! Muitas vezes fazemos a conversão de forma imediata, embora não com coordenadas. Com quê? Com as horas.
Começando pelo príncipio. A definição das letras:
H - Norte ou Sul, Este ou Oeste. Também pode ser um sinal, positivo para Norte ou Este, Negativo para Sul ou Oeste.
DD - Graus. DD vem do inglês Degrees.
MM - Minutos
SS - Segundos
HDD.DDDDD - Coordenada definida apenas com graus e décimas de graus
HDD MM.MMM - Coordenada definida com graus, minutos e décimas de minutos (o formato mais comum no geocaching)
HDD MM SS.SS - Coordenada definida com graus, minutos, segundos e décimas de segundos
Se isto começa a parecer complicado, calma. Façam o seguinte: imaginem que os graus são horas, os minutos, minutos e os segundos, segundos.
Por exemplo: são 13h56m, agora que escrevo isto. Se fossem coordenadas, tinha acabado de usar o formato
HDD MM.MMM.
Este formato estranho que usamos para dizer as horas, a toda a hora, chama-se formato sexagesimal, porque usa a base 60. Uma hora tem 60 minutos, um minuto 60 segundos.
Da mesma forma, um grau tem 60minutos e um minuto tem 60 segundos.
Agora, pensem. Se eu disser: "São
13.5 horas", ou seja, são 13 horas e meia, parece estranho. Normalmente diríamos : "São
13h30m". Bem mais familiar, até porque é a informação que temos na maior parte dos relógios digitais (sim, há uns
esquisitos).
Ora, com coordenadas o sistema é precisamente o mesmo! A única coisa que varia, são mesmo os limites dos graus, que na latitude vão de 0 a 90 e na longitude vão de 0 a 180, quando nas horas vão apenas de 0 a 24.
De resto, a parte que parece complicada (os minutos e os segundos), é tudo já bem conhecido, desde que saibam ver as horas

.
Ora, e então como converter entre os formatos
HDD.DDDDD,
HDD MM.MMM e
HDD MM SS.SS?
Podem usar os meios já disponibilizados, ou então, relembrar uma formidável ferramenta dos tempos de escola:
a regra dos três símbolos.
1 grau <----->60 minutos
x graus<----->30 minutos
Multiplicam as diagonais e dividem pelo valor oposto ao x:
x = 1 x 30 / 60 = 0.5 graus
Simples!
Portanto, 38 graus e 30 minutos, é igual a 38.5 graus.
Tal como 13 horas e 30 minutos, é igual a 13.5 horas.
Para os segundos, é a mesma coisa:
1 minuto <-----> 60 segundos
x minutos<-----> 30 segundos
Multiplicam as diagonais e dividem pelo valor oposto ao x:
x = 1 x 30 / 60 = 0.5 minutos
Para converter uma hora, ou uma coordenada, devem começar sempre pelo valor mais pequeno, que serão os segundos.
Por exemplo, para converter
lat= 38 graus, 30 minutos e 30 segundos, fariam:
1 min <----> 60 seg
x min <----> 30 seg
x= 1x30/60 = 0.5 min
lat= 38 graus e (30+0.5) min= 38 graus e 30.5 min
1 grau <----> 60 min
x min <----> 30.5 min
x=1x30.5/60 =0.50833 graus
lat= 38 + 0,50833 graus = 38.50833 graus
Parece complicado? Bom, esqueçam que é uma localização e pensem que é uma hora. Com algum hábito, torna-se tudo muito mais simples!
O contrário, é ainda mais simples. Com base ainda na regra de 3 símbolos, vamos converter a coordenada acima:
lat= 38.50833 graus
O valor de graus, é 38. E os minutos? Bom:
1 grau <----> 60 min
0.50833 graus <----> x min
Multiplicam as diagonais e dividem pelo valor oposto ao x:
x= 0.50833x60/1= 30.4998 min
lat= 38 graus e 30.4998 min
Na prática, subir de segundos para minutos ou de minutos para graus, corresponde a dividir por 60. Descer de graus para minutos e de minutos para segundos, corresponde a multiplicar a parte decimal por 60.
Notem que devido aos arredondamentos, haverá sempre algum erro na passagem de um formato para outro.
E, novamente, se acharem que a conversão está a ficar complicada, lembrem-se que é o mesmo sistema que usam para as horas!
Espero que isto ajude a desmistificar a conversão entre os formatos de representar uma coordenada em graus, minutos e segundos. Pode dar jeito numa conversão em que não acesso web. [;)]
Divirtam-se!
Nuno
Rifkindsss