【问题标题】:Limit number of points retrieved in a postgis query?限制在 postgis 查询中检索到的点数?
【发布时间】:2020-12-22 23:12:19
【问题描述】:

小问题:假设在 postgis 中有一个表,它有一个几何图形,一个由 1000 个点组成的圆,是否可以检索一些点来获取几何图形的整体形式? 例如: 从表中选择“分辨率”为 100 点的几何体

长问题:我将几何图形存储在需要使用传单在网页中绘制的表格中。目前一切正常,架构如下:

但是我需要提高网页的性能,因为加载时间很长,因为需要从存储在数据库中的几何图形中检索和构建的大型 geojson 会消耗大量带宽。我的一些想法不是检索构成圆(几何)的所有点,而是仅检索同样允许绘制几何的子集。如果用户对几何图形的特定区域进行一些缩放,应用程序将仅检索传单地图中可见的部分,并按顺序刷新几何图形以提高分辨率(几何图形的点数)。

【问题讨论】:

    标签: python leaflet postgis geopandas


    【解决方案1】:

    PostGIS 有一个名为 ST_Simplify (see docs) 的函数可以做到这一点。它使用 Ramer–Douglas–Peucker 算法 (see Wikipedia article) 来简化(多)线串和(多)几何。您可能需要一些缓存以用于不同缩放的不同分辨率。

    【讨论】:

    • 从p省选择ST_Npoints(geometry), ST_NPoints(ST_SimplifyPreserveTopology(geometry,0.001)), ST_SimplifyPreserveTopology(geometry, 0.001);我没有得到 5667 分,而是得到 592。这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 2017-05-25
    • 2017-03-22
    相关资源
    最近更新 更多