2010-03-17 67 views
3
  1. 所以问题出在这里......我有一个字段,用户可以输入他们的地址(通过Google Maps API GeoCoded)。
  2. 我在我的数据库中有几个小部件的地址(保存为地址..再次可以轻松地进行地理编码)。

我需要的是用户输入他们的地址,并根据他们的地址距离来创建我的小部件列表。我有几千个地址用于我的小部件,用户显然拥有无数个地址。如何根据距离与Google Maps API进行搜索?

任何想法?

谢谢。

回答

2
SELECT latitude, longitude, SQRT(POW(69.1 * (latitude - 52.58) , 2) + 
POW(69.1 * (- 1.12 - longitude) * COS(latitude/57.3) , 2)) AS distance 
FROM location ORDER BY distance 

Click Here 他们提供计算距离的几种方法 - 选择最适合你的。

0

此博客帖子,"Calculate Distance using Google Maps API",可能会有一些帮助。

+0

这对2点是好的,但是如何在用户输入他/她的地址的同时实时为我的所有地址执行此操作? – Shamoon 2010-03-17 20:33:47

+0

通过使用'for .. next'循环?您的小部件已经进行了地理编码并存储在数据库中。在通过API调用对用户地址进行地理编码后,这只是数学问题。即使是数千个地址也只需要几秒钟的时间。 – ghoppe 2010-03-17 21:36:10

1

你真的不能使用谷歌来计算你的地理距离过滤。要做到这一点,您必须将您的数据发送给他们,让他们存储并为您查询。他们现在或将来都可以提供这种服务,但我没有听说过。

在更多的法律,更强大,更昂贵的顺序:

A /作为点或感兴趣的位置是通过您的网站的客户的意见,收集地理coordiniates。然后使用你自己的搜索引擎,并从一个点的距离搜索。可能违反与谷歌的协议,但他们确实提到'缓存'的结果,以减轻服务器的负担。 (原因是我的个人猜测。)

B /使用谷歌进行批量地理编码,也许只有一次,最多每天最多5000个IP地址,最后我看到了。甚至不确定这是否违反使用协议。

C购买与地理编码服务的合同,并存储他们为您进行地理编码的内容。

D购买地理编码库并进行自己的地理编码。

相关问题