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

我想知道使地址与搜索字段进行比较并按与搜索字段位置的距离对它们进行排序的最佳方法吗? GoogleAPI文档说每天的请求被限制为25,000,这是否意味着我每天只能进行7次搜索?

最佳答案

我认为-是的。 Google很聪明地计算2个LatLng之间的距离,因为使用街道和道路可以提供距离,而不是2点之间的直线距离(在php中很容易计算)。

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

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

...

好吧,我有这个主意:


请存储4000个位置中的每个位置的LatLng。
存储所有4000个位置之间的距离(以便选择一个位置,就可以得到所有其他位置的列表,并按距离排序)。
从用户处获得地址后,将其转换为LatLng,然后使用简单的数学方法在一条直线上找到最近的位置。
使用从数据库到所有其他位置的距离列表,要求google获取到该位置的准确距离,以及最接近该位置的大约10-20;其余的使用距数据库最近的距离。


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

关于php - 对很长的列表进行地理编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16827220/

10-12 14:51