Google Maps为我提供了像这样的十进制符号的LAT和一个位置:

38.203655,-76.113281

我如何将这些转换为坐标(学位,分钟,秒)

有帮助吗?

解决方案

38.203655是小数的度量。一分钟内有60分钟的学位和60秒(1度== 60分钟== 3600s)。

因此,以该值的分数为单位,即0.203655,然后以60分数乘以分钟,即12.2193,即12分钟,然后重复分钟的分数部分,即0.2193 = 13.158000秒。

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)

其他提示

如果您需要JavaScript中其他与地理相关的功能,则可以使用以下库

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

它提供以下功能:

  • 来自/到小数纬度/经度转换的DMS
  • 距离计算
  • 轴承计算
  • 相交点骨化

我认为这将为您提供解决方案:

def deg_min_sec(self,degrees=0.0):
        if type(degrees) != 'float':
            try:
                degrees = float(degrees)
            except:
                print '\nERROR: Could not convert %s to float.' % (type(degrees))
                return 0
        minutes = degrees % 1.0 * 60
        seconds = minutes % 1.0 * 60

        return (degrees, minutes, seconds)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top