【问题标题】:jquery autocomplete for shops near locationjquery自动完成位置附近的商店
【发布时间】:2013-02-18 16:28:14
【问题描述】:

我有一个已放入 javascript 数组的商店列表。我也有他们的地址。

我需要创建一个自动完成功能,它允许我输入城市名称并显示离该位置最近的 3 个。我想它需要以某种方式与谷歌的 api 接口,但不确定从哪里开始。

我已经在 ajax 脚本上使用了实际的自动完成 jquery 东西,但我不知道如何找到最近的东西。

【问题讨论】:

    标签: php jquery geolocation google-api


    【解决方案1】:

    你需要店铺的经纬度位置,https://developers.google.com/maps/documentation/geocoding/ 然后你需要用户的经纬度位置,通过一些比较简单的数学运算就可以计算出这两点之间的距离:

    $distance = round((6371*3.1415926*sqrt(($lat2-$lat1)*($lat2-$lat1) + 
    cos($lat2/57.29578)*cos($lat1/57.29578)*($lon2-$lon1)*($lon2-$lon1))/180), 1);
    

    如果您有大量商店和大量用户,我建议将这些距离缓存在 mysql 表中,您必须为数据库中的每个商店执行此操作。因此,您为每个例如创建一个表要求这个的邮政编码并设置一个 cron 来每隔一小时左右删除这些表。

    所以过程:

    1. 用户询问最近的商店
    2. 您通过 google api(或您自己的存储)获取他的位置
    3. 检查是否有他所在位置的表格
    4. 如果是直接给他结果,如果不是生成表格给他结果

    请注意,谷歌只允许有限数量的数据请求。尽管这个数字很大(我相信每天有 25.000 个请求),但还是建议存储您的商店和用户的经纬度位置。还可以提高速度。

    我做了类似的事情,我在将位置插入数据库的那一刻提取了纬度/经度位置,并将其插入到单独的每个邮政编码的纬度/经度表中。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2017-08-12
      • 1970-01-01
      • 2015-12-24
      • 2018-04-09
      • 2011-06-19
      相关资源
      最近更新 更多