jquery autocomplete为附近的商店

时间:2013-02-18 16:28:14

标签: php jquery geolocation google-api

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

我需要创建一个自动填充功能,允许我输入城市名称,并显示距离该位置最近的3。我想它需要与google的apis接口,但不知道从哪里开始。

我有一个真正的自动完成jquery工作在一个ajax脚本,但我不知道如何让事情最近。

1 个答案:

答案 0 :(得分:0)

您需要商店的纬度/经度位置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来删除这些表的zipcode。

所以这个过程:

  1. 用户要求就近商店
  2. 您通过google api(或您自己的存储空间)获取其位置
  3. 检查是否有他的位置表
  4. 如果是,请直接给他结果,如果没有生成表并给他结果
  5. 请注意,谷歌只允许有限数量的数据请求。即使这个数字很大(我相信每天有25.000个请求),也可以建议存储商​​店和用户的lat-lon位置。也会提高速度。

    我做了类似的事情,我在将一个位置插入数据库并将其插入一个单独的每个zipcode lat / lon表时,取出了lat / lon位置。