原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://cloud.tencent.com/developer/article/1596483
- @[toc]1.原理源码及测试结果2.1. 程序源码2.2. 测试结果文本提示
经纬度转换
# 度分秒制 转换为 小数形式
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
#-*- 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)
(113, 12, 39.59999999999468)
113.211
请按任意键继续. . .