python3-经纬度的相关计算
2017-07-06 17:21
1456 查看
一.计算两个点之间的距离(经纬度的计算)
二.计算多个经纬度的中心
#from math import radians, cos, sin, asin, sqrt from math import * def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 (十进制度数) # 将十进制度数转化为弧度 # math.degrees(x):为弧度转换为角度 # math.radians(x):为角度转换为弧度 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*1000 if __name__=='__main__': a=haversine(103.85012,36.03653,103.84085,36.03842) print(a) #注:该结果的数值存在问题
二.计算多个经纬度的中心
#通过经纬度,找出中心点 from math import * def center_geolocation(geolocations): x = 0 y = 0 z = 0 lenth = len(geolocations) for lon, lat in geolocations: lon = radians(float(lon)) lat = radians(float(lat)) x += cos(lat) * cos(lon) y += cos(lat) * sin(lon) z += sin(lat) x = float(x / lenth) y = float(y / lenth) z = float(z / lenth) return (degrees(atan2(y, x)), degrees(atan2(z, sqrt(x * x + y * y)))) if __name__ == '__main__': locations = [[116.568627, 39.994879], [116.564791, 39.990511], [116.575012, 39.984311]] print(center_geolocation(locations)) ##结果 (116.56947685224392, 39.98990040970147)
相关文章推荐
- 经纬度相关计算
- python根据经纬度计算距离示例
- 根据两点间经纬度坐标(double值)计算两点间距离,LBS操作相关工具类
- python pymongo 经纬度坐标距离计算
- 优矿-python计算上证50之间的相关系数
- 经纬度相关计算
- python计算相关系数
- 小白—Python3.5科学计算相关包的安装(Windows系统)
- 经纬度距离等相关计算的不同语言实现
- python利用地图两个点的经纬度计算两点间距离
- 经纬度相关的一些计算
- python函数——根据经纬度计算距离公式的错误及修正
- Python计算地图上两点经纬度间的距离
- python计算相关系数
- Python 根据百度 API 获得经纬度,根据经纬度计算城市间距离
- python根据经纬度计算距离示例
- 一个经纬度相关计算的C++类
- 利用python库计算person相关系数
- python根据地球经纬度计算距离
- 计算两个经纬度之间的距离(python算法)