python 纬度经度十进制/十六进制转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 纬度经度十进制/十六进制转换相关的知识,希望对你有一定的参考价值。

## VERSION 1

# latitude / longitud convertor into decimal format
def latlon2dec(dlat,dlon):
    """
    Example of input:
    dlat = {'deg':34,'min':22,'sec':46}
    dlon = {'deg':134,'min':43,'sec':45}    
    """
    latd = dlat['deg'] + (float(dlat['sec'])/60. + float(dlat['min'])) / 60.
    lond = dlon['deg'] + (float(dlon['sec'])/60. + float(dlon['min'])) / 60.
    return (latd,lond)
    

## VERSION 2    

# hex to decimal
def dms2dd(degrees, minutes, seconds, direction):
  dd = float(degrees) + float(minutes)/60 + float(seconds)/(60*60);
  if direction == 'S' or direction == 'W':
      dd *= -1
  return dd;

# decimal to hex
def dd2dms(deg):
  d = int(deg)
  md = abs(deg - d) * 60
  m = int(md)
  sd = (md - m) * 60
  return [d, m, sd]

# parse hex text ("36°57'9' N 110°4'21' W") to decimal
def parse_dms(dms):
  import re
  parts = re.split('[^\d\w]+', dms)
  lat = dms2dd(parts[0], parts[1], parts[2], parts[3])
  lng = dms2dd(parts[4], parts[5], parts[6], parts[7])

  return (lat, lng)

以上是关于python 纬度经度十进制/十六进制转换的主要内容,如果未能解决你的问题,请参考以下文章

将整数纬度和经度转换为十进制(用于谷歌地图 api)

苹果手机;使用 mapkit 处理纬度/经度十进制值

这是啥纬度/经度格式?

查找十进制纬度和经度是不是落在特定的访问范围内

是否可以增加纬度和经度值的十进制值以获得最近地点的位置?

python:使用纬度和经度查找提供位置半径内的位置的优雅方法