WGS84坐标下根据经纬度计算两点之间的距离
作者:野牛程序员:2023-12-25 17:58:10python阅读 2880
使用WGS84坐标系下的经纬度计算两点之间的距离通常采用球面三角法,常见的计算公式是Haversine公式。以下是用Python实现的示例代码:
import math def haversine(lat1, lon1, lat2, lon2): R = 6371 # 地球半径,单位为公里 # 将经纬度转换为弧度 lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, 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 = R * c return distance # 例子 latitude1, longitude1 = 40.7128, -74.0060 # 第一个点的纬度和经度 latitude2, longitude2 = 34.0522, -118.2437 # 第二个点的纬度和经度 result = haversine(latitude1, longitude1, latitude2, longitude2) print(result)
请注意,这个示例代码中的距离单位是公里。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
