编写一个Python代码计算并打印地球上两点的大圆弧距离的Python程序。该程序接收用户的4个输入x1、y1、x2、y2(分别表示地球上两个点的纬度和经度,单位是度)。大圆弧距离计算公式为(单位是英里) 其中R=69.1105英里,1英里=1.609km。请计算所给坐标之间的大圆弧距离,单位是千米。(注意,sin、cos函数输入的是弧度值, 而程序中给的是角度值,需要转换。arccos结果是弧度值,需要转化成角度值)。
时间: 2023-05-20 17:03:49 浏览: 504
以下是计算地球上两点大圆弧距离的Python程序:
```python
import math
def distance(x1, y1, x2, y2):
R = 69.1105 # 英里
dLat = math.radians(x2 - x1)
dLon = math.radians(y2 - y1)
lat1 = math.radians(x1)
lat2 = math.radians(x2)
a = math.sin(dLat/2) * math.sin(dLat/2) + math.cos(lat1) * math.cos(lat2) * math.sin(dLon/2) * math.sin(dLon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
distance = R * c * 1.609 # 千米
return distance
x1 = float(input("请输入第一个点的纬度:"))
y1 = float(input("请输入第一个点的经度:"))
x2 = float(input("请输入第二个点的纬度:"))
y2 = float(input("请输入第二个点的经度:"))
print("两点之间的大圆弧距离为:%.2f千米" % distance(x1, y1, x2, y2))
```
请注意,这个程序中的计算公式是基于地球是一个近似的球体来计算的,因此在极端情况下可能会有一些误差。
阅读全文
相关推荐






