如何根据这些数字计算:
51.501690392607,-0.1263427734375
到纬度和经度?
应该是
London, England 51° 32' N 0° 5' W
答案 0 :(得分:2)
答案 1 :(得分:2)
要转换51.501690392607,请先取整数部分51度。正值是北;负面是南方。
然后取小数部分:0.501690392607
乘以60:60 * 0.501690392607 = 30.10142355642
取整数部分30分钟。
然后取小数部分:0.10142355642
乘以60:6.0854133852
将秒数舍入到最接近的1。
你出来:51度北30分6秒。
对于东/西方向,重复东正和西负。
要找到这个城市,你必须使用一些数据库或其他东西......
我不知道为什么你的转换似乎不匹配。
答案 2 :(得分:2)
两个表示之间的基本转换可以这样完成:
// to decimal
decimal = degree + minutes/60 + seconds/3600;
// from decimal
degree = int(decimal)
remaining = decimal - degree
minutes = int(remaining*60)
remaining = remaining - minutes/60
seconds = remaining*3600
答案 3 :(得分:1)
要将分数度数转换为度数和分钟数,请使用伪代码:
degrees = int(frac)
minutes = int((frac - degrees) * 60)
分别将“否定”数字转换为“S”和“W”(vs“N”和“E”),使用“if”。
为了使伪代码可执行,我们可以使用Python ......:
def translate(frac, islatitude):
if islatitude: decorate = "NS"
else: decorate = "EW"
if frac < 0:
dec = decorate[1]
frac = abs(frac)
else:
dec = decorate[0]
degrees = int(frac)
minutes = int((frac - degrees) * 60)
return "%d %d %s" % (degrees, minutes, dec)
例如:
print translate(51.501690392607, True),
print translate(-0.126342773437, False)
会发出
51 30 N 0 7 W
装饰(度数和分钟符号)取决于输出设备的字符集支持 - W坐标的7对5分钟弧度似乎是您给出的输入数字的正确结果。