查询以查找我附近的地方(谷歌地图)

时间:2011-02-12 15:56:04

标签: php mysql google-maps

就我的申请而言,我使用谷歌地图,以便: 用户将在地图上标记他所在的位置(它存储在数据库中)。然后,当他再次查看地图时,应该显示其他靠近他的用户。

坐标存储在名为coords的用户的db字段中,格式为:22.515578,33.265897(纬度,经度)

查询应该是什么,以便找到距离他+/- 1(或任何其他距离)的所有标记? (例如,如果他是22.515578,33.265897那么它应该搜索其他例如21.515578,32.265897或23.515578,34.265897)

提前致谢!

2 个答案:

答案 0 :(得分:1)

This可以帮到你。

例如,这里给定纬度和经度为32,-122,距离小于25英里。

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

答案 1 :(得分:0)

不要重新发明轮子。如果您正在使用mysql,请尝试空间扩展和几何之间的空间函数(即distance)。如果您尝试手动执行此操作而不是you must go another way。干杯< / p>