Php 对一个很长的列表进行地理编码

Php 对一个很长的列表进行地理编码,php,mysql,geocoding,Php,Mysql,Geocoding,我有一个充满地址的数据库表,表的长度超过4000条记录 我想知道获取地址的最佳方法是将其与搜索字段进行比较,并根据与搜索字段位置的距离对其进行排序?GoogleAPI文档称,请求限制在每天25000次左右,这是否意味着我每天只能进行7次搜索?我相信,由于地址变化不大,您可以将纬度/经度缓存在某个位置,并参考这些纬度/经度,而不是重复请求。当然,请详细说明是否存在其他缓解条件。在我看来,是的。谷歌在计算两个板条之间的距离方面很聪明,因为它使用街道和道路来计算距离,而不是两个点之间的直线距离(用ph

我有一个充满地址的数据库表,表的长度超过4000条记录


我想知道获取地址的最佳方法是将其与搜索字段进行比较,并根据与搜索字段位置的距离对其进行排序?GoogleAPI文档称,请求限制在每天25000次左右,这是否意味着我每天只能进行7次搜索?

我相信,由于地址变化不大,您可以将纬度/经度缓存在某个位置,并参考这些纬度/经度,而不是重复请求。当然,请详细说明是否存在其他缓解条件。

在我看来,是的。谷歌在计算两个板条之间的距离方面很聪明,因为它使用街道和道路来计算距离,而不是两个点之间的直线距离(用php很容易计算)

保存这4000个地址中的LatLng对你没有任何好处,因为你仍然需要询问谷歌从用户地址到每个地址的距离。即使你拥有所有的LatLng,你也无法自己计算(你需要地图

我想您可以保存每个用户输入,并将该地址保存到每个位置的4000个距离。。。但这只对第二次返回该站点的用户有用

好的,我有一个想法:

  • 储存4000个位置的板条
  • 存储所有4000个位置之间的距离(这样,若您选择一个位置,就可以按距离排序得到所有其他位置的列表)
  • 当您从用户处获得地址时,将其转换为LatLng,并使用简单的数学方法在直线中找到最近的位置
  • 使用数据库中所有其他位置的距离列表,让谷歌获得该位置的accuall距离,以及距离最近位置的大约10-20距离;对于其余部分,使用距离数据库最近的距离

  • 通过这种方式,您可以从用户输入中获得到最近位置的前10-20个精确距离,其余的将从数据库中提取-它们实际上是从最近位置到其他位置的距离。

    我认为这适合作为一个答案。我在对大量邮政编码进行地理编码时也遇到了类似的问题,我发现在保存每个邮政编码并将结果存储在数据库中时,只需对每个邮政编码进行地理编码就更容易了。而且,只有在显示谷歌地图时,才能使用谷歌API。-另外,地址在哪个国家?@Andrew在确定距离时,您是在寻找街道距离还是空中距离,甚至是直线距离?不幸的是,我甚至无法构建数组,因为当我导入表或使用xml版本时,我得到了Balloc()无法分配内存我们在共享主机包上这些变量只有地址。我必须先把它们转换成地理代码,结果不太顺利。它用于搜索预定义位置的位置。