2011-11-25 70 views

Respuesta

20

Por "Coordenadas decimales" ¿quiere decir latitud y longitud (también conocido como el grado decimal)? Si es así, lo que estamos tratando de hacer es bastante fácil:

dado un DMS (grados, minutos, segundos) de coordenadas como W87 ° 43'41 ", es trivial para convertirlo en una serie de grados decimales usando el método siguiente: Calcule el número total de segundos, 43′41″ = (43*60 + 41) = 2621 segundos. La parte fraccionaria es el número total de segundos dividido por 3600. 2621/3600 = 0,728056 ~ Añadir grados fraccionados a todo grados para producir el resultado final: 87 + 0,728056 = 87,728056

Dado que es una coordenada de longitud Oeste, niega el resultado. El resultado final es -87.728056.

De Wikipedia. Aquí hay un Javascript widget que hace lo mismo.

21

Depende del formato de su fuente. Si ya está dividido en grados (d), minutos (m) y segundos (s), el algoritmo es:

(suponiendo que d es puede ser positivo o negativo)

dd = Math.signum(d) * (Math.abs(d) + (m/60.0) + (s/3600.0)); 

Si se smooshed juntos en una cadena, el formato habitual es:

"DDD.MMSS"

Así pARSE a cabo utilizando una expresión regular o String.substring() para obtener m y s.

conversión de espalda es:

d = (int)dd; // Truncate the decimals 
t1 = (dd - d) * 60; 
m = (int)t1; 
s = (t1 - m) * 60; 
8
**begin 23°26’49”** 
degrees = 23 
minutes = 26 
seconds = 49 
decimal = ((minutes * 60)+seconds)/(60*60)) 
answer = degrees + decimal 
**finish 23.44694444** 
+0

Gracias. Probado en http://www.sunearthtools.com/dp/tools/conversion.php y funciona –

Cuestiones relacionadas