2016-11-19 14 views
0

我在形式GPS座標轉換DD°MM.MMM」至dd.ddddd°(緯度和經度)在Python 3

緯度= 3648.5518 經度= 17443.258

欲再轉換更傳統的格式

緯度= -36.8091667 經度= 174.7209667

我可以通過字符串操作爲此,如下所示。但是這種方法看起來非常「羅嗦」。在Python 3.4中實現這種轉換是否有更好的方法(任何內置功能)?我的搜索已空白。任何意見將不勝感激。

史蒂夫(新的Python /編程)

Lat = 3648.5518 
Lat = str(Lat) 
Latdd = float(Lat[:2]) 
Latmmmmm = float(Lat[2:]) 
Latddmmmm = Latdd+(Latmmmmm/60.0) 
print(Latddmmmm) 


Lon = 17443.258 
Lon = str(Lon) 
Londd = float(Lon[:3]) 
Lonmmmmm = float(Lon[3:]) 
Londdmmmm = Londd+(Lonmmmmm/60.0) 
print(Londdmmmm) 
+0

這個例子中的負號是否正確?它與代碼不匹配。 –

回答

2

它看起來像輸入是十進制格式的濫用放置寫度分鐘爲100 *度+分鐘。

您可以使用模分割提取度,分和秒部分。爲了清晰起見,分爲兩個功能。

def dm(x): 
    degrees = int(x) // 100 
    minutes = x - 100*degrees 

    return degrees, minutes 

def decimal_degrees(degrees, minutes): 
    return degrees + minutes/60 

print (decimal_degrees(*dm(3648.5518)))