5

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

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

我该怎么做呢?

4

2 回答 2

2

我使用Yahoo Geo Planet API来识别与用户输入的搜索词相对应的地点。这通常匹配多个位置,因此您必须将它们呈现给用户以让他们选择正确的位置。然后,一旦您知道了正确的位置,并且它是 Yahoo API 提供的 lat longs,您就可以使用haversine 公式来获得离用户位置最近的企业。这个问题的答案中有一个很好的例子。

于 2010-04-29T21:34:26.770 回答
0

我会通过在该点周围创建一个正方形来解决此问题,以获得该点本身就是一个整体,因为您需要一个邮政编码数据库或 api,这往往需要花钱。无论是购买数据库还是每次查找。

至少按城市或类似城市进行操作,您可能(不确定)从 GMaps 中返回该城市的长纬度。

然后我会尝试在该点附近获得 4 个角 longlat 坐标。然后我可以在数据库中搜索介于两者之间的值。

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

于 2010-04-29T10:05:36.917 回答