Unicode GPS坐标到十进制转换

时间:2017-08-11 11:38:12

标签: python-2.7 unicode gps

问题

我在python-2.7中使用了一个代码,并且我以无用的unicode格式生成了latlon表达式(从调试器中复制)

'latitude' = {unicode} u'N40°34\\'58.96"'
'longitude' = {unicode} u'W074°44\\'30.45"'

我希望这些是花车,即

'latitude' = {float} 40.583044
'longitude' = {float} -74.741792

我尝试过的事情

我已将unicodes转换为字符串,例如:

s = latitude.encode('utf-8')
t = longitude.encode('utf-8')
s = {str} 'N40°34\\'58.96"'
t = {str} 'W074°44\\'30.45"'

现在的问题是我需要删除所有不需要的字符,然后转换为正确的十进制表达式

1 个答案:

答案 0 :(得分:0)

这应该有效:

import re
def parseLonLat(l):
    l = re.split('[^\d\w\.]+', l)[:-1] # split into a list degree, minute, and second
    direction = l[0][0] # direction North, East, South or West
    l[0] = l[0][1:] # remove the character N or E or S or W
    return (1 if direction in ('N', 'E') else -1) * sum([float(n) / 60 ** i for i, n in enumerate(l)])