RoR位置搜索

时间:2013-02-20 08:57:05

标签: ruby-on-rails ruby-on-rails-3 geolocation location postal-code

对于相当开放的问题感到抱歉,但我想知道是否有人对创建搜索特定半径范围内的属性的应用程序的最佳方法有任何建议。

我希望实现的最好的例子是RightMove

我想知道添加城市,城镇和邮政编码数据并使其可搜索的最佳设置。

我一直在阅读有关Geocoder的内容,但我想知道这是否是这类应用的最佳选择,还是有很好的选择。例如,您是否建议将所有位置数据存储在我自己的数据库中,或使用API​​来提供此信息。

人们可以提供的任何建议或链接真的很感激!感谢。

1 个答案:

答案 0 :(得分:1)

该方法完全取决于您希望获得地理编码数据的位置的地理编码数据的要求和可用性。

使用Geocoder为您提供了一个优势,您无需为更新给定位置的地理数据库而烦恼。它有自己的缺点(请求超时,数据不适用于特定位置,许可,查询限制等),但它们可以解决。

如果您可以将数据存储在数据库中,那么您可以使用Postgresql + PostGIS设置实现相同的功能。 PostGIS模块使您能够根据Radius进行空间查询,检查给定的goe-point是否与预定义的多边形等对应,并且由于这些在DB内部执行,因此性能也非常好。这种方法有两个优点,您不必注册任何服务,也不需要超时错误。这种方法的缺点是你必须自己维护/更新位置数据。

我用第二种方法做了一些ROR项目,并且它对我们来说工作得很好。

希望这有帮助。