计算已知经纬度两点的距离 |
您所在的位置:网站首页 › 经纬坐标如何计算距离 › 计算已知经纬度两点的距离 |
计算经纬度点之间的距离有三种方法,一种是利用geopy计算;一种是利用haversine公式计算;还可以直接在Excel中计算。 1.直接利用Python第三方库:geopy 代码: from geopy.distance import geodesic dist = geodesic((37.193462, 100.1347), (37.194363, 100.1348)).km print(dist)更新:利用geopy计算距离 官网资料:https://www.osgeo.cn/geopy/#module-geopy.distance Geopy可以用 geodesic distance 或 great-circle distance ,默认测地线距离作为函数 geopy.distance.distance . classgeopy.distance.geodesic(*args, **kwargs)用于计算两点间的测地线距离。 参考资料: https://blog.csdn.net/study_in/article/details/86136504 2.半正矢公式(haversine equation)用于计算两经纬度点的距离 具体代码: import math # Python 3 program for the # haversine formula def haversine(lat1, lon1, lat2, lon2): # distance between latitudes # and longitudes dLat = (lat2 - lat1) * math.pi / 180.0 dLon = (lon2 - lon1) * math.pi / 180.0 # convert to radians lat1 = (lat1) * math.pi / 180.0 lat2 = (lat2) * math.pi / 180.0 # apply formulae a = (pow(math.sin(dLat / 2), 2) + pow(math.sin(dLon / 2), 2) * math.cos(lat1) * math.cos(lat2)); rad = 6371 c = 2 * math.asin(math.sqrt(a)) return rad * c # Driver code if __name__ == "__main__": lat1 = 35.289448 lon1 = 79.79672 lat2 = 35.290348 lon2 = 79.796616 print(haversine(lat1, lon1,lat2, lon2), "K.M.")3.在Excel中计算经纬度两点的距离 http://blog.sciencenet.cn/blog-1094854-1025358.html 计算A(lonA,latA),B(lonB,latB)两点的距离: 公式1: 输入公式=6371004*ACOS(1-(POWER((SIN((90-latA)*PI()/180)*COS(lonA*PI()/180)-SIN((90-latB)*PI()/180)*COS(lonB*PI()/180)),2)+POWER((SIN((90-latA)*PI()/180)*SIN(lonA*PI()/180)-SIN((90-latB)*PI()/180)*SIN(lonB*PI()/180)),2)+POWER((COS((90-latA)*PI()/180)-COS((90-latB)*PI()/180)),2))/2):公式2: 输入公式=6371004*ACOS((SIN(RADIANS(latA))*SIN(RADIANS(latB))+COS(RADIANS(latA))*COS(RADIANS(latB))*COS(RADIANS(lonB-lonA))))4.三种方法计算结果对比 更新于2021-06-02 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |