半正弦(Haversine)公式是一种用于计算球面上两点之间最短距离的数学方法。它常用于地理信息系统(GIS)和导航系统中,计算地球表面上两点之间的距离。
半正弦公式主要用于计算球面上两点之间的最短距离。它涉及到以下步骤:
以下是一个使用Python计算两个列表中经纬度点之间距离的示例代码:
import math
def haversine(lon1, lat1, lon2, lat2):
"""
计算两个经纬度点之间的距离
:param lon1: 第一个点的经度
:param lat1: 第一个点的纬度
:param lon2: 第二个点的经度
:param lat2: 第二个点的纬度
:return: 两点之间的距离(单位:公里)
"""
# 将十进制度数转化为弧度
lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2])
# haversine公式
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.sin(dlat / 2) ** 2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon / 2) ** 2
c = 2 * math.asin(math.sqrt(a))
# 地球半径(单位:公里)
r = 6371
return c * r
# 示例列表
list1 = [(120.123, 30.456), (121.789, 31.234)]
list2 = [(120.789, 30.987), (122.456, 31.567)]
# 计算两个列表中所有点之间的距离
distances = []
for point1 in list1:
for point2 in list2:
distance = haversine(point1[0], point1[1], point2[0], point2[1])
distances.append(distance)
print(distances)
通过以上方法,你可以有效地计算两个列表中经纬度点之间的距离,并解决相关的技术问题。
领取专属 10元无门槛券
手把手带您无忧上云