javascript - 通过 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、谷歌地图等)?
我有一些想法,但它们可能不是最好的,因为它们都是蛮力方法:
- 在我的坐标周围绘制一定距离的半径,然后遍历数据集以查找是否有任何现有坐标在此半径内。如果有一个或多个,则遍历它们并通过它们的距离查看我最接近哪个。
- 不知何故,开始在最远的小数位处舍入我的坐标,并在每次舍入后检查数据集中是否存在这组新的舍入坐标。
我觉得这些想法真的很糟糕,并且希望得到一些关于此类搜索的良好算法的指导或建议。
解决方案
推荐阅读
- image - 如何在鼠标悬停 QML 上突出显示图像
- ionic-framework - 如何将离子模态高度设置为等于其内容
- maven - Maven 使用配置文件部署
- java - 如何在android的MainActivity.java文件中添加代码
- python - python celery AttributeError: 'int' object has no attribute 'upper' 错误
- linux - 找不到与inferior的线程库匹配的libthread_db,线程调试将无法使用
- html - 在网格布局中以百分比设置高度未按预期工作
- typescript - ioredis:如何在与默认 6379 端口不同的端口上运行 Redis 服务器?
- javascript - 使用 panzoom.svg.js 将平移钳制到 svg 边界
- java - 如何从警报对话框界面传递用户输入的密码以打开受密码保护的 pdf 文件?