Cercare un'utilità java. È ancora meglio se puoi dirmi come farlo usando la libreria di geotools.come convertire tra gradi, minuti, secondi e coordinate decimali
risposta
Per "coordinate decimali" si intende latitudine e longitudine (noto anche come grado decimale)? Se è così, ciò che si sta cercando di fare è piuttosto semplice:
Dato un DMS (gradi, minuti, secondi) di coordinate come W87 ° 43'41 ", è banale per convertirlo in un certo numero di gradi decimali utilizzando il metodo seguente: Calcolare il numero totale di secondi,
43′41″ = (43*60 + 41) = 2621
secondi. La parte frazionaria è il numero totale di secondi divisi dal 3600. 2621/3600 = ~ 0,728,056 mila Aggiungi gradi frazionali per intere gradi per produrre il risultato finale: 87 + 0,728056 = 87,728056Dal momento che si tratta di una longitudine ovest coordinare, nega il risultato. Il risultato finale è -87.728056.
Da Wikipedia. Ecco uno Javascript widget che fa la stessa cosa.
Dipende dal formato sorgente. Se è già diviso in gradi (d), minuti (M) e secondi (s), l'algoritmo è:
(supponendo che D è può essere positivo o negativo)
dd = Math.signum(d) * (Math.abs(d) + (m/60.0) + (s/3600.0));
Se è smooshed insieme in una stringa, il formato abituale è:
"ddd.mmss"
Quindi analizzare fuori utilizzando un'espressione regolare o String.substring() per ottenere me s.
La riconversione è:
d = (int)dd; // Truncate the decimals
t1 = (dd - d) * 60;
m = (int)t1;
s = (t1 - m) * 60;
**begin 23°26’49”**
degrees = 23
minutes = 26
seconds = 49
decimal = ((minutes * 60)+seconds)/(60*60))
answer = degrees + decimal
**finish 23.44694444**
Grazie. Testato su http://www.sunearthtools.com/dp/tools/conversion.php e funziona –
possibile duplicato di [? Come faccio a convertire queste coordinate alle coordinate leggibile da Google Maps] (http://stackoverflow.com/questions/995738/how- do-i-convert-these-coordinates-to-coordinates-readable-by-google-maps) –