实际场景一般是大规模的(如包裹揽派可能会涉及成千上万个点),需要计算的数据量过大,而导航距离一般需要通过API获取,API的导航距离查询服务一般有查询额度限制,大量地址对的导航距离的查询非常耗时,且成本昂贵。如何能够快速高效的获取运输距离便成了一个亟待解决的问题。在大部分时候,如在点之间距离近、业务精度要求不高的时候,可以采用距离拟合的方式来计算点之间的距离。
若点的位置由直角坐标系的坐标 ( x , y ) (x,y) (x,y)表示,那么点之间的距离则为欧氏距离:
d i j = ( x i − x j ) 2 + ( y i − y j ) 2 d_{ij} = \sqrt{(x_i-x_j)^2+(y_i-y_j)^2} dij=(xi−xj)2+(yi−yj)2
由于地球可看作一个球体,假设地球半径为 R R R(6378.137km),那么可以计算得到点之间的球面距离,并乘以一个距离系数 k k