Saya mencari alat daring atau yang dapat saya unduh untuk mengonversi DD ke DMS.
Misalnya, saya ingin mengonversi dari:
41.590833, -93.620833 hingga 41 ° 35 ′ 27 ″ N, 93 ° 37 ′ 15 ″ W ... Itu adalah koordinat, menurut Geohack , untuk Des Moines.
Saya mencari alat daring atau yang dapat saya unduh untuk mengonversi DD ke DMS.
Misalnya, saya ingin mengonversi dari:
41.590833, -93.620833 hingga 41 ° 35 ′ 27 ″ N, 93 ° 37 ′ 15 ″ W ... Itu adalah koordinat, menurut Geohack , untuk Des Moines.
Jawaban:
Karena bahkan kode Microsoft buggy, mungkin berguna untuk memberikan pseudocode yang benar untuk konversi.
Untuk mengkonversi derajat desimal x ke derajat ( d ), menit ( m ), dan (desimal) detik ( s ), lakukan hal berikut:
Declare d, m as integer, s as float
If x < 0, then sign = -1 else sign = +1
Let y = Abs(x) ' Work with positive values only.
Let d = Int(y) ' Whole degrees. Floor() is ok too.
Let z = 60*(y - d) ' The fractional degrees, converted to minutes.
Let m = Int(z) ' Whole minutes.
Let s = 60*(z - m) ' The fractional minutes, converted to seconds.
Assert sign*(((s/60) + m)/60 + d) == x ' This confirms a correct result.
Return (sign*d, m, s)
Alih-alih mengembalikan gelar yang telah ditandatangani, Anda dapat menunjukkan N / S atau E / W di akhir:
If x is a latitude, then
If sign == -1 then hemisphere = "S" else hemisphere = "N"
Else {x is a longitude}
If sign == -1 then hemisphere = "W" else hemisphere = "E"
End if
Return (d, m, s, hemisphere)
Jika suka, Anda dapat membulatkan s ke bilangan bulat dan memformat hasilnya agar sesuai dengan formulir yang diberikan dalam pertanyaan.
Ini tidak terlalu rumit untuk dilakukan, tetapi saya cenderung hanya menggunakan halaman web ini . Tapi mari kita bekerja melalui garis lintang dalam contoh Anda. Derajat desimalnya sama, dalam hal ini 41. Sekarang, ambil sisanya dan kalikan dengan 60. Ini memberi Anda 35,44998. Bagian integer adalah detik (35 '). Sekarang, ambil sisanya dan kalikan dengan 60 lagi. Anda mendapatkan detik (26,9998), yang membandingkan positif dengan temuan Anda di atas.
Lihat pustaka python ini https://github.com/ewheeler/PyDecimalDegrees
atau skrip daring / luring ini berdasarkan Perl http://www.movable-type.co.uk/scripts/latlong.html
Ini dapat membantu Anda. Coba saja. http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html
Ada kelas sederhana yang bagus untuk melakukannya di StackOverflow di C #: /programming/4504956/formatting-double-to-latitude-longitude-human-readable-format