所以,我需要计算两点之间的距离(lat-lon对)。我在Movable Type Scripts中读到了关于Haversine公式和Equirectangular近似的内容。
由于我只想计算短距离(小于4公里),Equirectangular公式是否是一个很好的近似值?
另外,我读过MySQL数据库in Google Developers documentation中的lat-lon存储,他们实现了像这样的Haversine公式:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
我的最后一个问题是,在sql查询中过滤点(如示例中)和按代码过滤它们之间是否有任何重大的性能差异?
答案 0 :(得分:2)
当我在更远的距离(1000英里,在英国境内)测试了胡须的角度时,差异大约为0.1%。因此,对于4公里或更短的距离,除非您需要最大精度,否则您也可以使用equirectangular进行速度。