首页 > 解决方案 > 通过 GPS 坐标查找最近的城市 - 算法

问题描述

我得到了我所在位置的坐标 ( 55.1858, -162.7211)。如果它存在于我的数据集中,我想找到我所在(或附近)的城市。数据集(上万个坐标)有我感兴趣的所有城市,以及该城市对应的一个或多个坐标(取决于城市的大小):

Cold Bay, Alaska, 55.1858,-162.7211
False Pass, Alaska,54.8542,-163.4113
King Cove, Alaska, 55.0628,-162.3056
...

找到我所在城市的最佳算法(最好是 JavaScript)是什么(不使用任何 API、谷歌地图等)?

我有一些想法,但它们可能不是最好的,因为它们都是蛮力方法:

  1. 在我的坐标周围绘制一定距离的半径,然后遍历数据集以查找是否有任何现有坐标在此半径内。如果有一个或多个,则遍历它们并通过它们的距离查看我最接近哪个。
  2. 不知何故,开始在最远的小数位处舍入我的坐标,并在每次舍入后检查数据集中是否存在这组新的舍入坐标。

我觉得这些想法真的很糟糕,并且希望得到一些关于此类搜索的良好算法的指导或建议。

标签: javascriptalgorithmsorting

解决方案


推荐阅读