需要考虑地球的弧度
已知两座标点的经纬度 该如何计算直线距离? 地球的曲率考虑在内
ChatGPT: 要计算两个地点之间的直线距离,考虑到地球的曲率,可以使用大圆距离公式,也称为球面三角学的 Haversine 公式。这个公式使用地球的半径和两个点的经纬度来计算它们之间的曲面最短距离。 以下是使用 Python 编程语言计算两个地点之间的直线距离的示例代码:
pythonimport math
def haversine(lat1, lon1, lat2, lon2):
# 将经纬度转换为弧度
lat1 = math.radians(lat1)
lon1 = math.radians(lon1)
lat2 = math.radians(lat2)
lon2 = math.radians(lon2)
# 经纬度差
dlat = lat2 - lat1
dlon = lon2 - lon1
# 使用 Haversine 公式计算球面距离
a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
distance = 6371 * c # 地球的半径为 6371 公里
return distance
# 示例经纬度
lat1 = 40.7128
lon1 = -74.0060
lat2 = 34.0522
lon2 = -118.2437
# 计算距离
distance = haversine(lat1, lon1, lat2, lon2)
print("直线距离为: {:.2f} 公里".format(distance))
你可以将 lat1、lon1、lat2 和 lon2 替换为你要计算的两个地点的经纬度。
本文作者:Maxwell
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处!