[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 请按任意键继续. . .