我有一个我已放入javascript数组的商店列表。我也有他们的地址。
我需要创建一个自动填充功能,允许我输入城市名称,并显示距离该位置最近的3。我想它需要与google的apis接口,但不知道从哪里开始。
我有一个真正的自动完成jquery工作在一个ajax脚本,但我不知道如何让事情最近。
答案 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。
所以这个过程:
请注意,谷歌只允许有限数量的数据请求。即使这个数字很大(我相信每天有25.000个请求),也可以建议存储商店和用户的lat-lon位置。也会提高速度。
我做了类似的事情,我在将一个位置插入数据库并将其插入一个单独的每个zipcode lat / lon表时,取出了lat / lon位置。