简单
技术面试0 次浏览

在滴滴出行中,我们会记录每一次行程的起点和终点经纬度。请编写一个 Python 函数,计算两个经纬度之间的直线距离(使用 Haversine 公式)。

滴滴出行数据分析师
Python地理计算数据处理

答题要点

推荐使用直接实现的答题框架。关键要点如下:1. 导入必要的库,如 math 库用于数学计算。2. 将经纬度从角度转换为弧度,因为 Haversine 公式使用弧度进行计算。3. 实现 Haversine 公式,公式中包含经纬度差值的正弦、余弦等计算。4. 根据公式计算出距离。示例话术:首先导入 math 库,然后将输入的经纬度转换为弧度,接着按照 Haversine 公式进行计算,最后返回计算得到的距离。代码示例如下:pythonimport mathdef haversine_distance(lat1, lon1, lat2, lon2): R = 6371 # 地球半径,单位为千米 dLat = math.radians(lat2 - lat1) dLon = math.radians(lon2 - lon1) lat1 = math.radians(lat1) lat2 = math.radians(lat2) a = math.sin(dLat / 2) * math.sin(dLat / 2) + math.sin(dLon / 2) * math.sin(dLon / 2) * math.cos(lat1) * math.cos(lat2) c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) return R * c