寻找距离给定地址最近的位置

5
我在CakePHP中构建了一个列出企业的应用程序。大约有2000个条目,并且每个企业的纬度和经度坐标都在数据库中。
现在我正在尝试解决搜索功能问题。
将会有一个输入框,用户可以输入街道地址、城市或邮政编码,然后我希望它返回从数据库中找到的最近的11个企业。
我该如何做呢?

1
算法寻找附近的点 - Gordon
2个回答

2
我使用Yahoo Geo Planet API来确定与用户输入的搜索词相关联的地点。通常会匹配多个地点,因此您需要将它们呈现给用户以选择正确的一个。然后,一旦您知道了正确的位置和它的经纬度(Yahoo API提供),您可以使用haversine公式来获取最靠近用户位置的企业。在这个问题的答案中有一个很好的例子。

这真的很有帮助,更接近我所寻找的,谢谢! - xtine

0

我会通过创建一个围绕该点的正方形来处理这个问题,获取该点本身就是一件很麻烦的事情,因为你需要一个邮政编码数据库或API,这些通常需要花费金钱,无论是购买数据库还是每次查询。

如果按城市或类似方式进行操作,你可能可以返回该城市在GMaps上的经纬度。

然后,我会尝试获取该点周围4个角的经纬度坐标。然后,我可以搜索数据库以查找那些在这些值之间的数值。

无论如何,我认为这是一个棘手的问题,但这是一个好问题!我很想看看人们的建议。


美国人口普查数据可用于生成以人口为权重的经纬度与邮政编码数据库。我过去曾使用过这些数据。如果你在谷歌上搜索一下,你会发现有一个免费的经纬度与邮政编码数据库。然后,在附近正方形内找到所有的邮政编码是一个非常快速和容易得到真正好的接近查找的方法。 - Dan Berlyoung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接