我正在使用PHP中的约会应用程序: 我的应用程序有一个搜索页面,可以在一个人位置的特定距离内搜索合适的用户配置文件(需要指定要搜索的里程数/公里数)。
我理解实现这个的逻辑(参考:Get nearest places on Google Maps, using MySQL spatial data),我不知道在哪里可以获得存储来自世界各地的每个位置的地理位置的数据库。这是免费的吗?有兴趣查看高级版本(如果有)。
还关注查询搜索速度。搜索这么大的数据库会花费一些开销,解决这个问题的最佳方法是什么?
高度赞赏任何建议。
祝你好运, Seniel
答案 0 :(得分:1)
这听起来很简单......你问用户他的地址,然后请求谷歌地图api这样的经度和纬度
http://maps.googleapis.com/maps/api/geocode/json?address=San+Stefano+1+Sofia&sensor=false
并将其写入数据库。
当用户搜索附近的人时
修改(不会是一个圆圈,但它会完成这项工作):
SELECT * FROM `users` AS u
WHERE u.lat IS BETWEEN {$my_lat-100} AND {$my_lat+100}
AND u.alt IS BETWEEN {$my_alt-100} AND {$my_lat+100}
就像你提到的帖子一样。