PostGIS bucket抽稀结合mvt

参考文章 基于PostGis实现空间点抽稀
由于Cesium渲染mvt功能刚做出来,性能不好,此外设备点空间分布不均匀,渲染卡顿加上密集分布在效果上需要优化,在postGIS生成mvt时加入了抽稀的操作。
结合mvt的Envelope计算width_bucket,由于希望抽稀点有业务属性,没有选择计算中心点st_centroid,而是选取集合中第一个点,联合原表带出其他属性。

select a.geom,a.count,b.sensorname from (
  select 
    --用于分组
    width_bucket(st_x(geom),st_xmin(ST_TileEnvelope(Z,X,Y)),st_xmax(ST_TileEnvelope(Z,X,Y)),20) as grid_x,
    width_bucket(st_y(geom),st_ymin(ST_TileEnvelope(Z,X,Y)),st_ymax(ST_TileEnvelope(Z,X,Y)),20) as grid_y,
    --集合&选点&统计
    ST_GeometryN(st_collect(geom),1) as geom,
    count(geom) 
  from camera 
  where st_intersects(geom,ST_TileEnvelope(Z,X,Y))
  group by grid_x,grid_y) a,
  camera b 
where a.geom&&b.geom;

效果


原数据

分30桶

分20桶

后续可能要优化下效率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • POSTGIS包含大量几何函数,方便我们处理空间数据,本文节选自官方文档,方便查找 5.3 几何构造 ST_Col...
    jadefan阅读 13,516评论 0 2
  • 探索和学习MySQL中GIS相关功能和特性 探索流程: 这里记录了学习和了解MySQL中GIS特性相关内容的过程。...
    囍冯总囍阅读 14,624评论 0 3
  • 坐标系转换 ST_Transform(geom,3857) 空间数据合并st_union st_asgeojson...
    桃子味的白开水阅读 3,523评论 0 0
  • postgis 标签(空格分隔): 数据库 [toc] 1. 空间数据库建表 1. 首先建立一个常规的表格存储有关...
    清远_03d9阅读 12,651评论 1 3
  • 主要函数: ST_AsMvtGeom 将Geom转化为MVT的geomST_AsMVT 将geom转换为MVT数据...
    hehehehe阅读 8,629评论 0 0