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

时间:2015-01-28 04:40:04

标签: java google-maps

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

1 个答案:

答案 0 :(得分:0)

这是SQL语句,它将找到距离37,-122坐标25英里半径范围内最近的20个位置。它根据该行的纬度/经度和目标纬度/经度计算距离,然后仅询问距离值小于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