限制在 postgis 查询中检索的点数?
Limit number of points retrieved in a postgis query?
简短的问题:假设在 postgis 中有一个 table 有一个几何图形,一个 1000 点的圆,是否可以检索一些允许得到的点几何的整体形式?
例如:
Select 来自 table 的几何图形,“分辨率”为 100 点
长问题: 我将几何图形存储在 table 中,需要使用传单在网页中绘制。目前一切正常,架构如下:
但是我需要提高网页的性能,因为加载时间很长,因为需要检索的大 geojson 和从存储在数据库中的几何图形构建会消耗大量带宽。我的一些想法不是检索构成圆(几何)的所有点,而是仅检索同样允许绘制几何的子集。如果用户对几何体的特定区域进行了一些缩放,应用程序将仅检索传单地图中可见的部分,并自动刷新几何体以增加分辨率(几何体的点数)。
PostGIS 有一个名为 ST_Simplify
(see docs) that does exactly that. It uses the Ramer–Douglas–Peucker algorithm (see Wikipedia article) 的函数来简化(多)线串和(多)几何图形。您可能需要针对不同缩放比例下的不同分辨率进行一些缓存。
简短的问题:假设在 postgis 中有一个 table 有一个几何图形,一个 1000 点的圆,是否可以检索一些允许得到的点几何的整体形式? 例如: Select 来自 table 的几何图形,“分辨率”为 100 点
长问题: 我将几何图形存储在 table 中,需要使用传单在网页中绘制。目前一切正常,架构如下:
但是我需要提高网页的性能,因为加载时间很长,因为需要检索的大 geojson 和从存储在数据库中的几何图形构建会消耗大量带宽。我的一些想法不是检索构成圆(几何)的所有点,而是仅检索同样允许绘制几何的子集。如果用户对几何体的特定区域进行了一些缩放,应用程序将仅检索传单地图中可见的部分,并自动刷新几何体以增加分辨率(几何体的点数)。
PostGIS 有一个名为 ST_Simplify
(see docs) that does exactly that. It uses the Ramer–Douglas–Peucker algorithm (see Wikipedia article) 的函数来简化(多)线串和(多)几何图形。您可能需要针对不同缩放比例下的不同分辨率进行一些缓存。