我想在我的应用程序中使用谷歌地址。当用户创建他的个人资料时,他必须输入他的位置,以便其他用户可以搜索他。这是存储地址的最佳做法。
我的目标是在用户页面上设置一个搜索栏,用户可以在其中输入显示建议的位置。当用户选择建议并单击搜索时。结果应填充该位置和附近位置
答案 0 :(得分:0)
你应该使用google places api来显示建议,它会给你一个自动完成的好处,你不必重新发明轮子。
将最后已知位置存储在单独的表中,告知几何mysql数据类型。
使用mysql地理空间查询查找具有搜索纬度的特定半径的用户。
答案 1 :(得分:0)
我建议将用户相关的额外信息存储在user_info
种类的表格中,
通过lat和lng获取用户,您可以使用以下查询
SELECT user_id,
(3959 * acos( cos( radians(".$lat.") ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(".$lng.") ) + sin( radians(".$lat.") ) * sin( radians( latitude ) ) ) )
AS distance
FROM user_info
WHERE latitude !='' AND longitude != ''
HAVING distance <= ".$distance."
ORDER BY distance LIMIT 0 , 20
您可以根据需要设置$distance
,这将返回user_ids数组,您可以在用户模型的whereIn
查询中使用该数组来获取用户行
对于搜索栏,我建议使用 https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
希望这有帮助。