JavaScript - Latitud-Longitud a Grados, Minutos, Segundos

   
Vista:
Imágen de perfil de Jose maria

Latitud-Longitud a Grados, Minutos, Segundos

Publicado por Jose maria (18 intervenciones) el 25/06/2014 00:36:16
Me parece interesante compartir con ustedes los viejos códigos de codificación de los "lobos del mar" (me falta el icono del pirata ) en el siglo XXI.

Google maps lo mantiene aunque nos pase las coordenadas con decimales (tomé el ejemplo de Santiago de Compostela) ya que tiene valores positivos y negativos latitud y longitud.

Prueben a poner en https://www.google.es/maps las coordenadas a la vieja usanza: 42º 52' 47.51" N, 8º 32' 41.24" W Eso sí, son obligados los términos de Mi$ter Google (N, S, E, W)

Pero ¿Cómo trasladar a la vieja usanza desde decimales?: grados, minutos, segundos cuando sólo tenemos números después de la coma [,] ( 42.879864, -8.544788;).

Pura matemática en javascript. Tienen el código completo para copiar y probar en html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Latitud-Longitud a Grados, Minutos, Segundos</title>
  </head>
  <body>
    <p>Las coordenadas corresponden a <b><span id="mensaje"></span></b></p>
    <script type="text/javascript">
/* Tomemos, por ejemplo, las coordenadas de la Santiago de Compostela (valores positivos y negativos) */
var lat = 42.879864;
var lng = -8.544788;
var latn = Math.abs(lat); /* Devuelve el valor absoluto de un número, sea positivo o negativo */
var latgr = Math.floor(latn * 1); /* Redondea un número hacia abajo a su entero más cercano */
var latmin = Math.floor((latn - latgr) * 60); /* Vamos restando el número entero para transformarlo en minutos */
var latseg = ((((latn - latgr) * 60) - latmin) * 60); /* Restamos el entero  anterior ahora para segundos */
var latc = (latgr + "º " + latmin + "\' " + latseg.toFixed(2) + '\"'); /* Prolongamos a centésimas de segundo */
if (lat > 0) {
  x = latc + ' N'; /* Si el número original era positivo, es Norte */
} else {
  x = latc + ' S'; /* Si el número original era negativo, es Sur */
} /* Repetimos el proceso para la longitud (Este, -W-Oeste) */
var lngn = Math.abs(lng);
var lnggr = Math.floor(lngn * 1);
var lngmin = Math.floor((lngn - lnggr) * 60);
var lngseg = ((((lngn - lnggr) * 60) - lngmin) * 60);
var lngc = (lnggr + "º " + lngmin + "\' " + lngseg.toFixed(2) + '\"');
if (lng > 0) {
  y = lngc + ' E';
} else {
  y = lngc + ' W';
}
document.getElementById('mensaje').innerHTML = 'Latitud: ' + x + ' Longitud: ' + y;
    </script>
  </body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de xve

Latitud-Longitud a Grados, Minutos, Segundos

Publicado por xve (1595 intervenciones) el 25/06/2014 09:18:06
excelente Jose Maria!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar