如何在 Python 中使用半正弦公式计算两个 GPS 点之间的方位和距离
半正矢公式是一个数学方程,用于计算球面上两点之间的大圆距离。在 GPS 环境中,此公式可用于确定两个 GPS 坐标之间的距离和方位。
第 1 步:定义函数
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): """ Calculate the great circle distance in kilometers between two points on the earth (specified in decimal degrees) """ # convert decimal degrees to radians lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # haversine formula dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 # Radius of earth in kilometers. Use 3956 for miles. Determines return value units. return c * r
第 2 步:计算
start_lon, start_lat = -1.7297222222222221, 53.32055555555556 bearing, distance = 96.02166666666666, 2 end_lon, end_lat = -1.6997222222222223, 53.31861111111111 distance_calculated = haversine(start_lon, start_lat, end_lon, end_lat) print("Distance:", distance_calculated)
输出:
Distance: 2.0000054199729084
在此示例中,计算出的距离与期望值 2 匹配公里。
注意:
以上是如何使用Python的半正矢公式计算两个GPS点之间的距离和方位?的详细内容。更多信息请关注PHP中文网其他相关文章!