如何根据 java 中的当前位置获取最近的位置

How to get nearest locations based on current location in java

实际上我在数据库中保存了所有 ATM 的纬度和经度。在当前情况下,我正在获取从 android 端到服务器端的纬度和经度。但是我在根据纬度和经度向他发送附近的 ATM 时遇到了困难。请建议我解决这个问题的好方法。

这里的 SQL 语句将找到距离 37, -122 坐标 25 英里半径内最近的 20 个位置。它根据该行的 latitude/longitude 和目标 latitude/longitude 计算距离,然后仅询问距离值小于 25 的行,按距离对整个查询进行排序,并将其限制为20 个结果。要按公里而不是英里搜索,请将 3959 替换为 6371。

Table Structure :

id | name | address | lat | lng

注意 - 此处纬度 = 28,经度 = -116。所以你只需要传递你自己的。

SELECT id, ( 3959 * acos( cos( radians(28) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-116) ) + sin( radians(28) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

您可以在此处阅读有关此公式的信息:http://en.wikipedia.org/wiki/Haversine_formula