Poszukujesz narzędzia do konwersji DD na DMS?

9

Szukam narzędzia online lub narzędzia, które mogę pobrać, aby przekonwertować DD na DMS.

Na przykład chcę przekonwertować z:

41.590833, -93.620833 do 41 ° 35 ′ 27 ″ N, 93 ° 37 ′ 15 ″ W ... Są to współrzędne, według Geohacka , dla Des Moines.

Shaun Rollins
źródło
WGS84 jest już w lat / long.
podmrok
chcesz przekonwertować z DD na DMS. Możesz ponownie przesłać kolejne pytanie, zadając to pytanie.
artwork21
2
czy będziesz używać określonego rozwiązania GIS? Jeśli tak, podanie tych informacji może dać lepsze odpowiedzi od społeczności.
grafika 21

Odpowiedzi:

13

Ponieważ nawet kod Microsoft jest wadliwy, przydatne może być podanie poprawnego pseudokodu do konwersji.

Aby przekonwertować dziesiętne stopnie x na stopnie ( d ), minuty ( m ) i (dziesiętne) sekundy ( s ), wykonaj następujące czynności:

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)

Zamiast zwracać podpisany dyplom, możesz wskazać N / S lub E / W na końcu:

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)

Jeśli chcesz, możesz zaokrąglić s do liczby całkowitej i sformatować wyniki, aby pasowały do ​​formularza podanego w pytaniu.

Whuber
źródło
Zapraszam anonimowego downvoter'a do poprawienia tej odpowiedzi ;-). (
Wydaje
5

Nie jest to zbyt skomplikowane, ale zazwyczaj korzystam z tej strony . Ale przeanalizujmy szerokość geograficzną w twoim przykładzie. Stopnie dziesiętne są takie same, w tym przypadku 41. Teraz weź resztę i pomnóż przez 60. To daje 35,44998. Część całkowita to sekundy (35 '). Teraz weź resztę i pomnóż ponownie przez 60. Otrzymasz sekundy (26,9998), co pozytywnie porównuje się z twoimi ustaleniami powyżej.

Jose
źródło
4

Kalkulator Windows w trybie naukowym załatwia sprawę.

Przycisk „dms” prowadzi od stopni dziesiętnych do stopni, minut i sekund.

Inv + dms (teraz pokazane jako deg) idzie w drugą stronę.

Kruk
źródło
3

To może ci pomóc. Spróbuj. http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

użytkownik3063
źródło
+1 Niezłe znalezisko. Zauważam, że ten aplet wymaga długości w zakresie [-180, +180]. Kod źródłowy pojawia się w dolnej części źródła strony.
whuber