[Python]经纬度转换

  • 2020 年 3 月 10 日
  • 筆記

原创文章

原文链接:https://blog.csdn.net/humanking7/article/details/101610559


文章目录

  • @[toc]

  • 1.原理
  • 2. 源码及测试结果
    • 2.1. 程序源码
    • 2.2. 测试结果
      • 文本提示

经纬度转换

1.原理

# 度分秒制 转换为 小数形式    decNum = 度 + 分/60 + 秒/3600    # 小数形式 转换为 度分秒制  decNum = I_Part + D_Part  # I_Part: 整数部分  # D_Part: 小数部分  度 = I_Part  分 = D_Part*3600 // 60  # 整除 60  秒 = D_Part*3600 % 60  # 取余  # 或  秒 = D_Part*3600 - 分*60

2. 源码及测试结果

2.1. 程序源码

#-*- coding:utf-8 -*-  # 经纬度转换    # [十进制小数] 转换为 [度分秒]  def LatLng_Dec2Rad(decNum):      NumIntegral = int(decNum)  # 整数部分      NumDecimal = decNum - NumIntegral  # 小数部分        tmp = NumDecimal * 3600      degree = NumIntegral  # 度      minute = int(tmp//60) # 分      second = tmp - minute*60  # 秒 tmp%3600        return degree, minute, second    # [度分秒] 转换为 [十进制小数]  def LatLng_Rad2Dec(d,m,s):      decNum = d + m/60.0 + s/3600.0      return decNum      if __name__ == "__main__":        lng_decNum = 113.211  # 要转换的经度        t = LatLng_Dec2Rad(lng_decNum)      print(t)        k = LatLng_Rad2Dec(t[0],t[1],t[2])      print(k)

2.2. 测试结果

文本提示

(113, 12, 39.59999999999468)  113.211    请按任意键继续. . .