我正在使用Sinatra和一个与ObjectMapper接口的PostgreSQL数据库在Heroku上构建一个Ruby应用程序。我需要运行一个查询,该查询返回数据库中某个矩形(对应于可见地图区域)内的所有位置(每个位置都具有纬度和经度属性)的列表。
我可以通过搜索地图范围内的纬度来做到这一点,经度也是如此。然而,我的问题是,我如何返回这些按邻近度排序的结果?我可以获得所有匹配查询的结果,然后在它们离开数据库后对它们进行排序,但是我想分批运行这个查询,只返回最近的5个位置,然后是6-10,然后是11-15,等等。
这可以做到吗?
编辑:我还没有确定是否使用PostgreSQL,如果合适的话,我可能会使用MongoDB。
发布于 2013-03-24 13:01:46
直接的问题是接近什么?您需要定义一个点作为邻近性的基础。然后,可以使用ORDER BY子句中的st_distance按几何图形对象之间的距离进行排序。这可以与LIMIT和OFFSET结合使用,以精确地执行您想要的操作。
https://stackoverflow.com/questions/7368738
复制相似问题