Postgresql PostGIS高效的离散点滤波

Postgresql PostGIS高效的离散点滤波,postgresql,postgis,Postgresql,Postgis,我正在尝试编写一个查询,以在一定的Geohash精度内有效地获取给定多边形内的所有非重叠点 注意事项: 我有很多行 我有空间索引 风水学 我在时间戳上有索引 通用查询,它也可以工作很棒,并且非常快,即使有数百万个点 SELECT * FROM points WHERE ST_Contains(polygon, location) AND timestamp >= somedate AND timestamp <= somedate LIMIT 1000 OFFSET 0 从以下

我正在尝试编写一个查询,以在一定的Geohash精度内有效地获取给定多边形内的所有非重叠点

注意事项:

  • 我有很多行
  • 我有空间索引 风水学
  • 我在时间戳上有索引
通用查询,它也可以工作很棒,并且非常快,即使有数百万个点

SELECT * FROM points WHERE
ST_Contains(polygon, location)
AND timestamp >= somedate AND timestamp <= somedate
LIMIT 1000 OFFSET 0
从以下位置选择*:
ST_包含(多边形、位置)

时间戳>=somedate AND timestamp=somedate AND timestamp我相信由于重复WHERE子句,您的两个查询都不起作用。哦,糟了,这只是我的一个o型查询。这些查询实际上看起来不像是在编辑…你也可以发布你的解释输出吗?你希望你的限额是在你的存款之前还是之后。如果是以前,你可以节省时间创建一个子查询,首先输出你的分数,包括限制。我相信你的两个查询都不会工作,因为有重复的WHERE子句。哦,糟糕,这只是我这边的一个o型。这些查询实际上看起来不像是在编辑…你也可以发布你的解释输出吗?你希望你的限额是在你的存款之前还是之后。如果是之前,您可以节省时间创建一个子查询,首先输出您的点,包括限制。
SELECT DISTINCT ON (ST_GeoHash(ST_SetSRID(location, 4326), 9)) 
* FROM points WHERE
ST_Contains(polygon, location)
AND timestamp >= somedate AND timestamp <= somedate
LIMIT 1000 OFFSET 0