Python 3.x 转换dd和xB0;嗯,嗯' ;;至dd.dd°;Python 3中的(纬度和经度)

Python 3.x 转换dd和xB0;嗯,嗯' ;;至dd.dd°;Python 3中的(纬度和经度),python-3.x,gps,Python 3.x,Gps,我在表格中有GPS坐标 纬度=3648.5518 Lon=17443.258 我想转换成更传统的格式 纬度=-36.8091667 Lon=174.7209667 我可以通过如下所示的字符串操作来实现这一点。然而,这种方法似乎非常“冗长”。有没有更好的方法(任何内置功能)在Python 3.4中实现这种转换?我的搜索结果是空白的。任何建议都将不胜感激 Steve(python/编程新手) 看起来输入是对十进制表示法的滥用,将write deg min设置为100*deg+min 您可以使用模除法

我在表格中有GPS坐标

纬度=3648.5518 Lon=17443.258

我想转换成更传统的格式

纬度=-36.8091667 Lon=174.7209667

我可以通过如下所示的字符串操作来实现这一点。然而,这种方法似乎非常“冗长”。有没有更好的方法(任何内置功能)在Python 3.4中实现这种转换?我的搜索结果是空白的。任何建议都将不胜感激

Steve(python/编程新手)


看起来输入是对十进制表示法的滥用,将write deg min设置为100*deg+min

您可以使用模除法提取度、分和秒部分。为清晰起见,分为两个功能

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)))

看起来输入是对十进制表示法的滥用,将write deg min设置为100*deg+min

您可以使用模除法提取度、分和秒部分。为清晰起见,分为两个功能

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)))

示例中的负号正确吗?它与代码不匹配。示例中的负号正确吗?它与代码不匹配。