我需要将经纬度值与经纬度列表进行比较,并获取该给定值的最接近值。例如,如果我有 latitude = 13.820000
和longitude = 47.887777
,我还有一个包含经纬度数量的列表,例如 [[13.41111,47.11111],[12.42332,53.3345],[14.23423,16.23423]]
。因为我需要从给定值的列表中获取最接近的经纬度值。
最佳答案
首先,您需要一个函数来计算两个地理点之间的距离。请参阅this 。然后您必须定义搜索 nearest neighbour 的策略。这是您的问题的技术名称。您有几种方法:
- 最简单的是朴素的 O(N)。将您的位置与所有位置进行比较 列表中的条目并保持最少。
- 在 kd-tree 等容器结构中插入一次列表 网格并在附近的桶中找到最接近的数字。摊销 O(1)
选择实际上取决于您的目的是什么以及您需要什么样的效率。
关于java - 如何从java中的列表中获取最近的纬度经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289787/