3
  1. 所以这就是问题所在......我有一个字段,用户可以在其中输入他们的地址(将通过 Google Maps API 进行地理编码)。
  2. 我的数据库中有几个小部件的地址(保存为地址.. 再次可以很容易地进行地理编码)。

我需要的是用户输入他们的地址,并根据与他们地址的距离列出我的小部件列表。我的小部件有数千个地址,而用户显然有无数个地址。

有任何想法吗?

谢谢。

4

4 回答 4

2

如果您将项目存储在 MySQL 数据库中,那么这就是您需要的基础

于 2010-03-17T21:16:38.140 回答
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

单击此处 他们提供了几种计算距离的方法 - 选择最适合您的方法。

于 2014-08-27T10:52:05.230 回答
1

你真的不能用谷歌来计算你的地理距离过滤。为此,您必须向他们发送您的数据,让他们存储并为您查询。他们现在或将来可能会提供这项服务,但我还没有听说过。

为了更合法、更有能力、更昂贵:

A/ 由于您网站的客户输入了单个点或感兴趣的位置,因此请收集地理坐标。然后使用您自己的搜索引擎并按与某个点的距离进行搜索。可能违反了与谷歌的协议,但他们确实提到了“缓存”结果以减轻服务器的负载。(原因是我个人的猜测。)

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

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

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

于 2012-11-11T01:42:01.807 回答
0

这篇博文“使用 Google Maps API 计算距离”可能会有所帮助。

于 2010-03-17T20:28:15.763 回答