DD DMS dönüştürmek için bir araç mı arıyorsunuz?


9

Çevrimiçi bir araç ya da DD'yi DMS'ye dönüştürmek için indirebileceğim bir araç arıyorum.

Örneğin, dönüştürmek istiyorum:

41.590833, -93.620833 - 41 ° 35 ′ 27 ″ N, 93 ° 37 ′ 15 ″ W ... Des Moines için bir Geohack'a göre koordinatlar bunlar .


WGS84 zaten enlem / boylamda.
underdark

dönüştürmek istediğiniz DD. Bunu soran başka bir soru gönderebilirsiniz.
artwork21

2
belirli bir CBS çözümü kullanacak mısınız? Öyleyse, bu bilgileri sağlayarak topluluktan daha iyi yanıtlar verebilir.
artwork21

Yanıtlar:


13

Microsoft kodu bile buggy olduğu için, dönüşüm için doğru sahte kod sağlamak yararlı olabilir.

Dönüştürmek için ondalık derece x derece (üzere d ), dakika ( m ) ve (ondalık) saniye ( ler ), aşağıdaki işlemleri:

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)

İmzalı bir derece döndürmek yerine, sonunda N / S veya E / W belirtebilirsiniz:

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)

İsterseniz, s'yi bir tamsayıya yuvarlayabilir ve sonuçları soruda verilen forma uyacak şekilde biçimlendirebilirsiniz.


Anonim downvoter'ı bu yanıtı geliştirmeye davet ediyorum ;-). (Bunu yapmak için temsilcisi olduğuna inanıyorum.)
whuber

5

Bunu yapmak çok karmaşık değil, ama sadece bu web sayfasını kullanma eğilimindeyim . Ama örneğinizdeki enlem üzerinde çalışalım. Ondalık dereceler aynıdır, bu durumda 41. Şimdi, geri kalanını alın ve 60 ile çarpın. Bu size 35.44998 verir. Tam sayı kısmı saniyedir (35 '). Şimdi, geri kalanını alın ve tekrar 60 ile çarpın. Yukarıdaki bulgularınızla pozitif olarak karşılaşan saniyeleri (26.9998) alırsınız.


4

Bilimsel modda Windows Hesap Makinesi benim için hile yapar.

"Dms" düğmesi sizi ondalık dereceden Derece, Dakika, Saniye'ye götürür.

Inv + dms (şimdi derece olarak gösterilir) diğer yöne gider.



3

Size yardımcı olabilir. Sadece dene. http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html


+1 Güzel bul. Bu uygulamanın [-180, +180] aralığında boylamlar gerektirdiğini fark ettim. Kaynak kodu, sayfanın kaynağının alt kısmında görünür.
whuber

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.