python利用地图两个点的经纬度计算两点间距离
2017-06-17 10:23
876 查看
这种文章本来网上一搜一大把,但有的计算结果是错的,遂找到个计算正确的,记录一下。
参考原文:LBS 球面距离公式
#!/usr/bin/python3from math import sin, asin, cos, radians, fabs, sqrtEARTH_RADIUS=6371 # 地球平均半径,6371kmdef hav(theta):s = sin(theta / 2)return s * sdef get_distance_hav(lat0, lng0, lat1, lng1):"用haversine公式计算球面两点间的距离。"# 经纬度转换成弧度lat0 = radians(lat0)lat1 = radians(lat1)lng0 = radians(lng0)lng1 = radians(lng1)dlng = fabs(lng0 - lng1)dlat = fabs(lat0 - lat1)h = hav(dlat) + cos(lat0) * cos(lat1) * hav(dlng)distance = 2 * EARTH_RADIUS * asin(sqrt(h))return distancelon1,lat1 = (22.599578, 113.973129) #深圳野生动物园(起点)lon2,lat2 = (22.6986848, 114.3311032) #深圳坪山站 (百度地图测距:38.3km)d2 = get_distance_hav(lon1,lat1,lon2,lat2)print(d2)lon2,lat2 = (39.9087202, 116.3974799) #北京天安门(1938.4KM)d2 = get_distance_hav(lon1,lat1,lon2,lat2)print(d2)lon2,lat2 =(34.0522342, -118.2436849) #洛杉矶(11625.7KM)d2 = get_distance_hav(lon1,lat1,lon2,lat2)print(d2)
输出结果很接近:
38.35252313201571938.215463747781511640.132941713944
附自己做查距离的站点距离查询
相关文章推荐
- Python计算地图上两点经纬度间的距离
- 利用google map api 经纬度计算两点间距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- [置顶] 【go语言计算两个经纬度距离】根据经纬度计算两点之间距离
- 通过gps给定的两个经纬度坐标,计算两点之间的距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- Python计算地图上两个点的距离
- PHP利用经纬度计算两点之间的距离(两种方法)
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 如何运用Python计算地图上两点的实际距离
- iOS 地图 通过经纬度计算两点间距离
- 用Python根据两点经纬度计算距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 利用经纬度计算两点之间距离:
- 根据经纬度计算地图上两点的距离
- 记录两个函数--1.计算某个经纬度的周围某段距离的正方形的四个点。2.根据两点间的经纬度计算距离
- python根据经纬度计算两点距离