查找指定地址的最近位置

时间:2010-04-29 09:59:56

标签: php mysql cakephp geolocation distance

我在CakePHP中构建了一个列出业务的应用程序。大约有2000个条目,每个企业的纬度和经度坐标都在DB中 我现在正试图解决搜索功能。

将有一个输入框,用户可以在其中放置街道地址,城市或邮政编码,然后我希望它返回从数据库中找到的11个最接近的商家。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

我使用Yahoo Geo Planet API来识别与用户输入的搜索字词对应的位置。这通常匹配多个地方,因此您必须将它们呈现给用户以让他们选择正确的地方。然后,一旦您知道正确的位置,并且它是Yahoo API提供的lat long,您就可以使用haversine formula将最近的企业发送到用户位置。在this question的答案中有一个很好的例子。

答案 1 :(得分:0)

我通过在点周围创建一个正方形来解决这个问题,因为你需要一个邮政编码数据库或api,这往往需要花钱。无论是购买数据库还是每次查询。

至少在城市或类似地方做到这一点,你可能,不确定,从该城市的GMaps返回long-lat。

然后我会尝试在这一点上获得4个角落的长条。然后我可以在数据库中搜索它们之间的值。

无论哪种方式,这都是一个棘手的事情,我会说,但是这个问题!有兴趣看到人们的建议。