天下之事,必先处之难,而后易之。

PG+POSTGIS地图空间位置网格聚合算法

目录

PG核心分包函数WIDTH_BUCKET

聚合点的归类过程演示

空间聚合效果展示

大规模空间数据方案


 PG,Postgresql数据库的简称,POSGIS是空间函数扩展支持插件集成了很多数据库级别的空间查询和空间图形数据处理能力。

PG核心分包函数WIDTH_BUCKET

WIDTH_BUCKET的原理是将对应的经度、纬度范围值划分为多少份,二这个参数就是地图四至。比如高德地图,它的可见范围,从西至东(经度范围),从南至北(纬度范围),正确的四至是一个数组表示的值如,[minX,minY,maxX,MaxY]。

这里我们的四至(extent)假设为:[30.431278,117.057442,32.614617,119.235188]

如果我们要将四至分为x,y轴都分为20等分,那么就如下面的SQL语句:

SELECT 
width_bucket(st_x(geom), 117.057442 ,119.235188 ,20) grid_x, 
width_bucket(st_y(geom), 30.431278 , 32.614617, 20) grid_y,  
count(*),
st_centroid(st_collect(geom)) geom,  
array_agg(gid) gids
from tpoint 

where 
st_x(geom) between 117.057442 and 119.235188 
and 
st_y(geom) between 30.431278  and 32.614617 

GROUP BY grid_x,grid_y 

如何测试请看我开源中国上的文章:Postgesql 空间点聚合查询实验

聚合点的归类过程演示

规则分布过程,取网格中心点:

不规则过程,取包含点的中心位置:

网格聚合,综合全图展示效果:

空间聚合效果展示

期望效果:

真实效果:

大规模空间数据方案

云数据库HybridDB for PostgreSQL(ApsaraDB HybridDB for PostgreSQL)是一种在线MPP大规模并行处理数据仓库服务。云数据库HybridDB for PostgreSQL基于Greenplum Database开源数据库项目,并由阿里云深度扩展,支持OSS外部表、JSON数据类型、HyperLogLog预估分析等功能特性。通过符合SQL2008标准查询语法及OLAP分析聚合函数,提供灵活的混合分析能力。支持行存储和列存储混合模式,提高分析性能,同时支持数据压缩技术,降低存储成本。并提供在线扩容、性能监测等服务,用户无需进行复杂的大规模MPP集群运维管理,让DBA、开发人员及数据分析师专注于如何通过SQL提高企业的生产力,创造核心价值。

产品详情:https://www.aliyun.com/product/gpdb

posted @ 2024-09-21 21:06  boonya  阅读(164)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。