根据经纬度计算两个点之间的距离

简介: 根据经纬度计算两个点之间的距离

代码直接放到utils目录下

from haversine import haversine
from math import sin, asin, cos, radians, fabs, sqrt


def hav(theta):
    """sin方"""
    s = sin(theta / 2)
    return s * s

def get_dis_by_haversine(lon_lat_first, lon_lat_second):
    """
        获取经纬度方式一
        参数:经度 纬度
    """
    lon_lat_first = (lon_lat_first[1], lon_lat_first[0])
    lon_lat_second = (lon_lat_second[1], lon_lat_second[0])
    dis = haversine(lon_lat_first, lon_lat_second)
    return dis * 1000


def get_distance_by_hav(lon_lat_first, lon_lat_second):
    """
        获取经纬度方式二
        参数:经度 纬度
    """
    EARTH_RADIUS = 6371  # 地球平均半径,6371km
    lng0 = lon_lat_first[0]
    lat0 = lon_lat_first[1]
    lng1 = lon_lat_second[0]
    lat1 = lon_lat_second[1]
    """纬度 经度 """
    """用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 distance * 1000


if __name__ == '__main__':
    """
        说明:直接导入两个函数, 用哪个都可以
        传参:两个元组
        格式(经度,纬度),(经度,纬度)
    """

    # 输入的格式:经度,纬度
    # 这两个测试点不要动
    lon_lat_first = (113.0612727, 23.0475255)
    lon_lat_second = (113.0612206, 23.0474695)
    print(get_dis_by_haversine(lon_lat_first, lon_lat_second))
    print(get_distance_by_hav(lon_lat_first, lon_lat_second))
相关文章
|
7月前
|
JavaScript 前端开发 Java
根据地球上任意两点的经纬度计算两点间的距离
根据地球上任意两点的经纬度计算两点间的距离
359 2
|
7月前
根据经纬度计算两点距离的方法
根据经纬度计算两点距离的方法
|
7月前
|
Python
计算两个位置经纬度距离
计算两个位置经纬度距离
142 0
|
定位技术 API 容器
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
958 0
|
定位技术
计算两GPS点之间的距离(比较精确)
计算两GPS点之间的距离(比较精确)
156 0
|
Java
java 经纬度处理、计算两地的距离、获取当前一定距离以内的经纬度值
java 经纬度处理、计算两地的距离、获取当前一定距离以内的经纬度值
447 0
|
定位技术 Python
Python地理位置信息库geopy的使用(二):根据中心点坐标,方向,距离计算坐标
上一篇文章我们介绍了geopy的基本使用,这一篇文章我们根据中心点坐标,方向,距中心点距离计算出对应的坐标点,这种用法官网并没有给出详细的文档,我们这里做一下说明 生成坐标点的具体方法 import geopy.
2176 0
平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小。
题目:平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小。 源码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 ...
1115 0
根据经纬度计算距离
#region 计算经纬度 private const double EARTH_RADIUS = 6378137; /// /// 计算两点位置的距离,返回两点的距离,单位 米 /// 该公式为GOOGLE提供,误差小于0.
1122 0