python怎么通过两点的经纬度坐标计算两点间距离
时间: 2023-09-19 08:12:50 浏览: 117
你可以使用math库中的cos、sin、sqrt函数和地球半径来计算两点间距离。以下是示例代码:
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371.0 # 地球半径,单位为公里
lat1 = math.radians(lat1)
lon1 = math.radians(lon1)
lat2 = math.radians(lat2)
lon2 = math.radians(lon2)
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.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance
# 例子
lat1 = 31.2304
lon1 = 121.4737
lat2 = 39.9042
lon2 = 116.4074
dist = distance(lat1, lon1, lat2, lon2)
print("两点间距离为:{:.2f}公里".format(dist))
(笑话:为什么大象不会用电脑?因为他不知道怎么按鼠标!)
相关问题
给定两点经纬度坐标求距离的python代码
以下是一个示例代码,可以计算给定两点经纬度坐标之间的距离(单位为千米):
```python
from math import radians, cos, sin, asin, sqrt
def distance(lat1, lon1, lat2, lon2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# 将十进制度数转化为弧度
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine公式
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 # 地球平均半径,单位为公里
return c * r
# 示例使用
print(distance(39.9042, 116.4074, 31.2304, 121.4737)) # 北京(39.9042, 116.4074)到上海(31.2304, 121.4737)的距离
```
该代码使用了Haversine公式来计算两点之间的距离。需要注意的是,这个公式假设地球是一个完美的球体,因此在实际使用中可能存在一定的误差。
python 计算经纬度两点距离_【Javascript】高德地图计算两点的坐标距离
以下是使用高德地图 API 计算两点距离的 Javascript 代码:
```javascript
function getDistance(lng1, lat1, lng2, lat2){
var radLat1 = lat1 * Math.PI / 180.0;
var radLat2 = lat2 * Math.PI / 180.0;
var a = radLat1 - radLat2;
var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s * 6378.137;//地球半径,单位千米
s = Math.round(s * 10000) / 10000;
return s;
}
```
其中,lng1、lat1 表示第一个点的经纬度,lng2、lat2 表示第二个点的经纬度,返回值为两点之间的距离(单位:千米)。