一尘不染

计算2个城市之间的距离

algorithm

您如何计算两个城市之间的距离?


阅读 676

收藏
2020-07-28

共1个答案

一尘不染

如果您需要考虑地球的曲率,则大圆距就是您想要的。Wikipedia上的文章可能比我更好地解释了该公式的工作原理,并且还有一个航空公式页面,其中涵盖了更多细节。

但是,公式只是难题的第一部分,如果您需要对任意城市进行这项工作,则需要一个位置数据库来获取经纬度。幸运的是,尽管有商业数据库可用(问谷歌),您可以从Geonames.org免费获得。因此,通常,查找所需的两个城市,获取经纬度坐标,然后将其插入公式中,如Wikipedia
Worked Example中所述

其他建议:

  • 对于完整的商业解决方案,有PC Miler,许多货运公司都使用它来计算运费。
  • 调用Google Maps(或其他)api。如果您每天需要执行许多请求,请考虑将结果缓存在服务器上。
  • 同样 重要的 是,如果您认为需要对数据进行分组,则考虑为城市,郊区,城镇等建立等效数据库。但是,这真的很复杂,您可能找不到适合您的问题的“一刀切”的解决方案。

最后但并非最不重要的一点是,Joel不久前写了一篇有关此问题的文章,因此您可以开始:新功能:求职

2020-07-28