python 计算两经纬高点的距离精确到厘米
要计算两个经纬高点的距离,需要使用地理坐标系和球面三角学的知识。以下是一个使用Haversine公式计算距离的示例代码:
import math
def calculate_distance(lat1, lon1, alt1, lat2, lon2, alt2):
# 转换为弧度
lat1_rad = math.radians(lat1)
lon1_rad = math.radians(lon1)
lat2_rad = math.radians(lat2)
lon2_rad = math.radians(lon2)
# 经纬度差值
dlat = lat2_rad - lat1_rad
dlon = lon2_rad - lon1_rad
# 使用Haversine公式计算距离
a = math.sin(dlat/2) ** 2 + math.cos(lat1_rad) * math.cos(lat2_rad) * math.sin(dlon/2) ** 2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
distance = 6371000 * c # 地球半径为6371公里,乘以1000转换为米
# 计算高度差
delta_alt = abs(alt2 - alt1)
# 计算三维距离
distance_3d = math.sqrt(distance**2 + delta_alt**2)
# 将距离转换为厘米
distance_cm = distance_3d * 100
return distance_cm
# 示例使用
lat1 = 40.7128
lon1 = -74.0060
alt1 = 0
lat2 = 34.0522
lon2 = -118.2437
alt2 = 0
distance = calculate_distance(lat1, lon1, alt1, lat2, lon2, alt2)
print("两点之间的距离为 %.2f 厘米" % distance)
请注意,这只是一个示例代码,实际应用中可能需要考虑更多因素,如地球椭球体形状、高度差对距离的影响等
原文地址: http://www.cveoy.top/t/topic/hOoX 著作权归作者所有。请勿转载和采集!