简单
技术面试0 次浏览

百度的地图业务需要计算两个地点之间的距离。假设我们有两个地点的经纬度坐标,如何使用 Python 计算它们之间的球面距离?请给出实现思路和代码示例。

百度算法工程师
Python地图距离计算

答题要点

推荐使用公式推导与代码实现结合的答题框架。关键要点:1. 明确公式:使用 Haversine 公式来计算球面距离。2. 数据处理:将经纬度从度转换为弧度。3. 公式计算:代入 Haversine 公式进行计算。4. 返回结果:返回计算得到的距离。示例思路:先将输入的经纬度转换为弧度,然后代入 Haversine 公式计算距离。示例代码如下:python import math def haversine(lon1, lat1, lon2, lat2): lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2]) dlon = lon2 - lon1 dlat = lat2 - lat1 a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2 c = 2 * math.asin(math.sqrt(a)) r = 6371 return c * r