java - 如何从java中的列表中获取最近的纬度经度

标签 java location latitude-longitude

我需要将经纬度值与经纬度列表进行比较,并获取该给定值的最接近值。例如,如果我有 latitude = 13.820000longitude = 47.887777 ,我还有一个包含经纬度数量的列表,例如 [[13.41111,47.11111],[12.42332,53.3345],[14.23423,16.23423]] 。因为我需要从给定值的列表中获取最接近的经纬度值。

最佳答案

首先,您需要一个函数来计算两个地理点之间的距离。请参阅this 。然后您必须定义搜索 nearest neighbour 的策略。这是您的问题的技术名称。您有几种方法:

  1. 最简单的是朴素的 O(N)。将您的位置与所有位置进行比较 列表中的条目并保持最少。
  2. 在 kd-tree 等容器结构中插入一次列表 网格并在附近的桶中找到最接近的数字。摊销 O(1)

选择实际上取决于您的目的是什么以及您需要什么样的效率。

关于java - 如何从java中的列表中获取最近的纬度经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289787/

相关文章:

google-maps-api-3 - 纬度和经度错误 - Google Maps API JS 3.0

java - 查找单击哪个按钮来启动功能

java - 如何迭代map避免NPE?

java - 创建图像的可点击按钮

ios - 重大位置变化 - 我们有什么保证?

Python 从地址生成纬度/经度点

java - url 编码需要 3 个 try block 吗?

java - 源文件夹文件 Java

android - 为什么我的 phone-gap 应用无法在某些 Android 设备上找到地理定位

latitude-longitude - 您将如何最有效地存储纬度和经度数据?