java - planas - cómo convertir grados, minutos, segundos a coordenadas decimales
convertir grados a decimales (3)
Depende de tu formato fuente. Si ya está dividido en grados (d), minutos (m) y segundos (s), su algoritmo es:
(suponiendo que d puede ser positivo o negativo)
dd = Math.signum(d) * (Math.abs(d) + (m / 60.0) + (s / 3600.0));
Si se combina en una cadena, el formato habitual es:
"ddd.mmss"
Entonces analice usando una expresión regular o String.substring () para obtener m y s.
Convertir de nuevo es:
d = (int)dd; // Truncate the decimals
t1 = (dd - d) * 60;
m = (int)t1;
s = (t1 - m) * 60;
Buscando una utilidad java. Es incluso mejor si me puedes decir cómo hacerlo usando la biblioteca geotools.
**begin 23°26’49”**
degrees = 23
minutes = 26
seconds = 49
decimal = ((minutes * 60)+seconds) / (60*60))
answer = degrees + decimal
**finish 23.44694444**
Por "coordenadas decimales", ¿quiere decir latitud y longitud (también conocido como el grado decimal)? Si es así, lo que estás tratando de hacer es bastante fácil:
Dada una coordenada DMS (Grados, Minutos, Segundos) como W87 ° 43''41 ", es trivial convertirla en un número de grados decimales usando el siguiente método: Calcular el número total de segundos,
43′41″ = (43*60 + 41) = 2621
segundos. La parte fraccionaria es el número total de segundos dividido entre 3600. 2621/3600 = ~ 0.728056 Agregue grados fraccionarios a grados enteros para obtener el resultado final: 87 + 0.728056 = 87.728056Como es una coordenada de longitud oeste, niegue el resultado. El resultado final es -87.728056.
De Wikipedia . Aquí hay un widget de Javascript que hace lo mismo.