如何通过经纬度计算两点之间的距离
时间: 2023-05-11 16:02:00 浏览: 62
可以使用 Haversine 公式来计算两点之间的距离,公式如下:
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)
c = 2 * atan2( √a, √(1−a) )
d = R * c
其中,lat1 和 lat2 分别为两点的纬度,lon1 和 lon2 分别为两点的经度,Δlat 和 Δlon 分别为两点纬度和经度的差值,R 为地球半径,d 为两点之间的距离。
以下是 Python 代码实现:
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为千米
lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2])
dlat = lat2 - lat1
dlon = lon2 - lon1
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))
d = R * c
return d
# 示例
print(distance(39.9, 116.3, 31.2, 121.5)) # 1068.7 千米
相关问题
通过经纬度计算两点之间的距离的公式
通过经纬度计算两点之间距离的常用公式如下:
设点 A 的纬度为 $lat_A$,经度为 $lon_A$,点 B 的纬度为 $lat_B$,经度为 $lon_B$,则两点之间的距离 $d$ 为:
$d = R \cdot \arccos(\sin(lat_A) \cdot \sin(lat_B) + \cos(lat_A) \cdot \cos(lat_B) \cdot \cos(lon_B - lon_A))$
其中 $R$ 为地球半径,一般取值为 $6371$ 公里。
注意:纬度和经度都是弧度制,所以需要把角度制转换成弧度制。可以使用以下公式:
$radians = \frac{\pi}{180} \cdot degrees$
$degrees = \frac{180}{\pi} \cdot radians$
Haversine公式通过经纬度计算两点距离
Haversine公式是一种常用的方法,通过经纬度计算地球上两点之间的距离。该公式基于球面三角形的概念,假设地球是一个完美的球体。
公式如下:
d = 2r * arcsin(sqrt(sin^2((lat2-lat1)/2) + cos(lat1) * cos(lat2) * sin^2((lon2-lon1)/2)))
其中,d表示两点之间的距离,r表示地球的半径,lat1和lat2分别表示两点的纬度,lon1和lon2分别表示两点的经度。这里的纬度和经度需要使用弧度表示。
需要注意的是,Haversine公式对于小距离的计算结果比较准确,但在计算大距离时可能存在一定误差。此外,由于地球并非完全球形,其他更精确的公式也可以用于计算两点之间的距离。