"""
业余电台地理位置报告中位置可以用4个或6个字符表示粗略或精确位置;
该系统将地球表面分成324(18X18)场(field),各占经度20度,纬度10度,AA~RR表示;
每个场又分成100(10X10)个方(square),00~99表示;
每个方又分成5766(24X24)个块(subsquare),AA~XX表示;
例如:My QTH is Pinggu Beijing and grid location is ON66GF.
"""
def degree_minutes_seconds(loc_wm):
#位置坐标转换成度,分,秒坐标
degree = int(loc_wm)
minutes = int((loc_wm - degree)/(1/60))
seconds = int((loc_wm - degree - minutes*(1/60))/(1/3600))
print(degree, minutes, seconds)
if __name__=='__main__':
degree_minutes_seconds(117.123987)
degree_minutes_seconds(40.2109324)
list_wm = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'G', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
list_nv = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
x = 200
while x <= -180 or x >= 180 or b >= 60 or c >= 60:
print('请输入位置的经度,小于等于180且大于等于-180,分秒小于60')
a, b, c = map(float, input("东经为正,西经为负,度、分、秒中间用逗号隔开(英文字符):").split(','))
x = a + b/60 + c/60/60 + 1/999999
print('经度:', x)
y = 100
while y <= -90 or y >= 90 or e >= 60 or f >= 60:
print('请输入位置的纬度,小于等于90且大于等于-90,分秒小于60')
d, e, f = map(float, input("北纬为正,南纬为负,度、分、秒中间用逗号隔开(英文字符):").split(','))
y = d + e/60 + f/60/60 + 1/999999
print('纬度:', y)
x_num = int((x + 180)/20)
str_j = list_wm[x_num]
y_num = int((y + 90)/10)
str_w = list_wm[y_num]
loc_1 = str_j + str_w
#print(loc_1)
xx_num = int((x+180-x_num*20)/2)
#print('xx_num:', xx_num)
str_jj = list_nv[xx_num]
yy_num = int((y+90-y_num*10)/1)
#print('yy_num:', yy_num)
str_ww = list_nv[yy_num]
loc_2 = str_jj + str_ww
#print(loc_2)
loc_four = loc_1 + loc_2
print('四位简码网格定位:', loc_four)
xxx_num = int(((x+180)/2 - int((x+180)/2))*60/5)
#print('xxx_num:', xxx_num)
str_jjj = list_wm[xxx_num]
yyy_num = int((y + 90 - int((y + 90)/1))*60/2.5)
#print('yyy_num:', yyy_num)
str_www = list_wm[yyy_num]
loc_3 = str_jjj + str_www
loc_six = loc_four + loc_3
print('六位网格定位:', loc_six)
"""
#运行结果
117 7 26
40 12 39
请输入位置的经度,小于等于180且大于等于-180,分秒小于60
东经为正,西经为负,度、分、秒中间用逗号隔开(英文字符):116,23,29.22
116,23,29.22
经度: 116.39145100000101
请输入位置的纬度,小于等于90且大于等于-90,分秒小于60
北纬为正,南纬为负,度、分、秒中间用逗号隔开(英文字符):39,54,26.37
39,54,26.37
纬度: 39.907326000001
四位简码网格定位: OM89
六位网格定位: OM89CV
"""
"""
Pgabc 2022000003
author : Pgabc
www.wmdbsoft.com
"""