MySQL位置查询与实际位置不比较?

时间:2015-04-17 14:07:57

标签: php android mysql geolocation localhost

所以我试图创建一个复杂的mysql查询来帮助整理我的数据库中存储的位置数据。

我有四个字段:id,纬度,经度,时间戳。

我想要做的是将我的数据库条目与设备的当前位置进行比较。没有设置带前缀的lat和long并与之进行比较。

我已经尝试过用于距离的Haversine Forumula,但它并不是我需要的。任何想法?

我需要的查询:需要通过索引存储在我的数据库中的现有位置向我显示距离我的实际手机位置最近的位置(~50m)。有什么想法吗?

我目前的查询:(我的经历实验)

set @orig_lat=32.42; 
set @orig_long=-221.50; 
set @bounding_distance=1;

SELECT * ,((ACOS(SIN(@orig_lat * PI() / 180) * SIN(`latitude` * PI() /
    180) + COS(@orig_lat * PI() / 180) * COS(`latitude` * PI() / 180) *
    COS((@orig_long - `longitude`) * PI() / 180)) * 180 / PI()) * 60 *
    1.1515) AS `distance`
FROM `Location`
WHERE ( `latitude` BETWEEN
    (@orig_lat - @bounding_distance) AND (@orig_lat + @bounding_distance)
    AND `longitude` BETWEEN (@orig_long - @bounding_distance) AND
    (@orig_long + @bounding_distance) )
ORDER BY `distance` ASC limit 1

0 个答案:

没有答案