如何在laravel

时间:2018-03-13 06:56:17

标签: laravel

我想在我的应用程序中使用谷歌地址。当用户创建他的个人资料时,他必须输入他的位置,以便其他用户可以搜索他。这是存储地址的最佳做法。

  1. 将国家,州,城市存放在不同的表格和街道地址中 个人资料栏
  2. 在配置文件表中存储地址列,地址为完整地址
  3. 我的目标是在用户页面上设置一个搜索栏,用户可以在其中输入显示建议的位置。当用户选择建议并单击搜索时。结果应填充该位置和附近位置

2 个答案:

答案 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

希望这有帮助。