Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 位置附近商店的jquery自动完成_Php_Jquery_Geolocation_Google Api - Fatal编程技术网

Php 位置附近商店的jquery自动完成

Php 位置附近商店的jquery自动完成,php,jquery,geolocation,google-api,Php,Jquery,Geolocation,Google Api,我已经在javascript数组中列出了一个商店列表。我也有他们的地址 我需要创建一个自动完成,它允许我输入一个城市名称,并显示离该位置最近的3个。我想它需要以某种方式与谷歌的API接口,但不确定从哪里开始 我已经在ajax脚本上使用了实际的autocomplete jquery功能,但我不知道如何找到最近的位置。您需要商店的横向/纵向位置,然后需要用户的横向/纵向位置,然后使用一些相对简单的数学计算出这两点之间的距离: $distance = round((6371*3.1415926*sqr

我已经在javascript数组中列出了一个商店列表。我也有他们的地址

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


我已经在ajax脚本上使用了实际的autocomplete jquery功能,但我不知道如何找到最近的位置。

您需要商店的横向/纵向位置,然后需要用户的横向/纵向位置,然后使用一些相对简单的数学计算出这两点之间的距离:

$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表中,您必须对数据库中的每个存储进行缓存。因此,您为每个请求此操作的代码(例如zipcode)创建一个表,并每隔一小时左右放置一个cron来删除这些表

因此,这个过程:

  • 用户询问最近的商店
  • 你通过谷歌api(或你自己的存储)获得他的位置
  • 检查是否有他的位置的桌子
  • 如果是,直接给他结果,如果不是,生成表格并给他结果
  • 请记住,谷歌只允许有限数量的数据请求。尽管这个数字很大(我相信每天有25000个请求),但最好存储您的商店和用户的lat lon位置。也会提高速度

    我做了类似的事情,在将一个位置插入数据库的那一刻,我获取了lat/lon位置,并将其插入到一个单独的per-zipcode lat/lon表中