Mencari alat untuk mengkonversi DD ke DMS?

9

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.

Shaun Rollins
sumber
WGS84 sudah dalam lat / long.
underdark
Anda ingin mengonversi dari DD ke DMS. Anda dapat mengirimkan kembali pertanyaan lain yang menanyakan hal ini.
artwork21
2
Apakah Anda akan menggunakan solusi GIS tertentu? Jika demikian, dengan memberikan informasi itu dapat memberikan jawaban yang lebih baik dari komunitas.
artwork21

Jawaban:

13

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.

whuber
sumber
Saya mengundang downvoter anonim untuk meningkatkan balasan ini ;-). (Saya yakin dia punya tenaga untuk melakukannya.)
whuber
5

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.

Jose
sumber
4

Kalkulator Windows dalam mode Ilmiah membantu saya.

Tombol "dms" membawa Anda dari derajat desimal ke Derajat, Menit, Detik.

Inv + dms (sekarang ditampilkan sebagai deg) berlaku sebaliknya.

Gagak
sumber
3

Ini dapat membantu Anda. Coba saja. http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

pengguna3063
sumber
+1 Temuan bagus. Saya perhatikan applet ini membutuhkan garis bujur dalam kisaran [-180, +180]. Kode sumber muncul di dekat bagian bawah sumber halaman.
whuber