0

我有一个用例,我需要检索有限数量的记录,这些记录的位置听到地理空间点。类似于:

SELECT * FROM table WHERE location is near (x, y) LIMIT 200

我想使用 PostGIS。但我不知道它是否支持这种查询。因为我不想检索边界框内的记录,而是根据到指定点的距离对记录进行排序的限制数量。我在 PostGIS 的文档中没有找到有关它的信息。

如果 PostGIS 支持它,它会扩展吗?这是我的应用程序中最常用的查询。而且记录的数量非常大。

我知道 MongoDB 有 $near 查询。它可以扩展吗?

4

2 回答 2

1

我无法与 postgis 交谈,但 MongoDB 的$near运算符旨在很好地扩展,具有适当的地理空间索引,并且查询的正确性和速度都经过了彻底的测试。此外,使用限制光标选项指定您想要的结果数量非常容易,这减轻了服务器和网络的负载。

于 2013-03-25T21:02:15.140 回答
0

PostGIS 2 引入了 KNN GiST 索引距离算子(例如<->质心算子),这在2011 年的一篇博客文章中得到了很好的描述。这种距离操作员是为速度而设计的。

SELECT * FROM table WHERE location <-> ST_MakePoint(x, y) LIMIT 200;

还有许多其他距离过滤器和运算符可用。

于 2013-03-26T01:59:57.680 回答