2010-01-13 42 views
8

Google Maps cung cấp cho tôi Long Lạt và một vị trí trong ký hiệu thập phân như thế này:Từ lâu đến phút và giây?

38,203655, -76,113281

Làm thế nào để chuyển đổi những để Coords (Độ, Phút, Giây)

+0

[Degrees Decimal để Degrees Phút Giây] (http: // www.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html) –

+0

Hệ thống và chuyển đổi phối hợp được giải thích ở đây, với mã giả: Co-ordinate conversion (from Wikipedia)

Trả lời

16

38,203655 là một giá trị thập phân của độ. Có 60 phút là một mức độ và 60 giây trong một phút (1degree == 60min == 3600s).

Vì vậy, hãy lấy phần phân số của giá trị, nghĩa là 0.203655 và nhân với 60 để lấy phút, tức là 12.2193, là 12 phút và sau đó lặp lại phần thập phân của phút, tức là 0,2193 = 13.158000 giây.

Ví dụ trong python:

def deg_to_dms(deg): 
    d = int(deg) 
    md = abs(deg - d) * 60 
    m = int(md) 
    sd = (md - m) * 60 
    return [d, m, sd] 

print deg_to_dms(38.203655) 
print deg_to_dms(-76.113281) 
+1

Giải pháp tốt. Ghi chú nhỏ: thường cho định dạng DMS, nó không được ký kết mà đúng hơn là sử dụng hướng hồng y (ví dụ, không phải là -76 12 34.567 nhưng W76 12 34.567). – TreyA

0

Trong trường hợp bạn cần chức năng geo-liên quan khác trong JavaScript, bạn có thể sử dụng thư viện sau

http://www.movable-type.co.uk/scripts/latlong.html

nó cung cấp các chức năng sau:

  • DMS từ/đến chuyển đổi vĩ độ/kinh độ thập phân
  • tính toán cách
  • tính Mang
  • Intersection điểm calcualtion
Các vấn đề liên quan