python实现给定两个城市的坐标计算两地相距多少公里

代码如下:

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

'''
给定两个地址的坐标,计算返回两地相距多少公里 
demo:
address1=成都 lon1 = 104.071000 lat1 = 30.670000
address2=宜宾 104.622000 lat2 = 28.765000
'''
def get_address_distance(lon1,lat1,lon2,lat2):
    # lon1 = 104.071000
    # lat1 = 30.670000
    # lon2 = 104.622000
    # lat2 = 28.765000
    # 将十进制度数转化为弧度
    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 # 地球平均半径,单位为公里
    #返回结果除以1000以公里为单位保留两位小数
    return round((c * r * 1000)/1000, 2)
    原文作者:Liu-YanLin
    原文地址: https://blog.csdn.net/qq_32502511/article/details/82906477
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞