我从GPS接收到的纬度和经度格式如下:
纬度:78°55'44.29458"N
我需要将这些数据转换为:
纬度:78.9288888889
我在这里找到了这段代码:链接
import re
def dms2dd(degrees, minutes, seconds, direction):
dd = float(degrees) + float(minutes)/60 + float(seconds)/(60*60);
if direction == 'E' or direction == 'S':
dd *= -1
return dd;
def dd2dms(deg):
d = int(deg)
md = abs(deg - d) * 60
m = int(md)
sd = (md - m) * 60
return [d, m, sd]
def parse_dms(dms):
parts = re.split('[^\d\w]+', dms)
lat = dms2dd(parts[0], parts[1], parts[2], parts[3])
return (lat)
dd = parse_dms("78°55'44.33324"N )
print(dd)
它适用于这种格式
dd = parse_dms("78°55'44.33324'N" )
但它对我的数据格式不起作用。有谁能帮我解决这个问题吗?
parse_dms("78°55'44.33324"N )
,那就是语法错误。你需要像我这样传递字符串:parse_dms("""78°55'44.29458"N""")
。或者你可以转义引号,如"78°55'44.29458\"N"
或'78°55\'44.29458"N'
。更多细节,你应该查看 Python 中定义字符串的语法。 - Falko