8

谷歌地图以十进制表示法为我提供了位置的纬度和经度,如下所示:

38.203655,-76.113281

如何将它们转换为坐标(度、分、秒)

4

4 回答 4

18

38.203655 是度的十进制值。有 60 分钟是一个度数,一分钟有 60 秒(1 度 == 60 分钟 == 3600 秒)。

所以取值的小数部分,即 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)
于 2010-01-13T13:10:37.470 回答
0

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

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

它提供以下功能:

  • DMS 从/到十进制纬度/经度转换
  • 距离计算
  • 轴承计算
  • 交点计算
于 2011-08-26T02:10:45.077 回答
0

可以解决问题的 Python 库:

https://pypi.python.org/pypi/LatLon/1.0.2

于 2015-04-16T18:26:18.577 回答
0

我认为这将帮助您解决问题:

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)
于 2019-01-25T05:12:08.097 回答