我用CakePHP构建了一个列出企业的应用程序。大约有2000个条目,每个业务的纬度和经度坐标都在数据库中。
我现在正在尝试处理搜索功能。
将有一个输入框,用户可以把一个街道地址,城市,或邮政编码,然后我希望它返回11个最近的企业从数据库中找到。
我该怎么做呢?
发布于 2010-04-30 05:34:27
我使用Yahoo Geo Planet API来标识与用户输入的搜索词相对应的位置。这通常会匹配多个位置,因此您必须将它们返回给用户,让他们选择正确的位置。然后,一旦您知道了正确的位置,并且是Yahoo API提供的lat longs,您就可以使用haversine formula将离用户位置最近的企业带到用户的位置。在对this question的回答中有一个很好的例子。
发布于 2010-04-29 18:05:37
我会通过在点周围创建一个正方形来实现这一点,获得点本身就是一件完整的事情,因为你需要一个邮政编码数据库或api,这往往会花费一些钱。无论是购买数据库还是每次查找。
至少在按城市或类似城市执行时,您可能不确定地从GMaps返回该城市的long-lat。
然后我会试着在那个点周围得到4个角的长角坐标。然后,我可以在数据库中搜索介于这两个值之间的值。
无论哪种方式,我都会说这是一件棘手的事情,不过这是一个很好的问题!有兴趣看到人们的建议。
https://stackoverflow.com/questions/2736336
复制相似问题