其他分享
首页 > 其他分享> > 使用PostGIS实现大批点的空间聚类

使用PostGIS实现大批点的空间聚类

作者:互联网

遇到了一个需求,要对数据库里比较近的点进行空间和属性的聚类合并,以便在显示时避免很多点堆在一起的问题。属性聚类比较简单,这里主要讲一下在空间聚类的一些经验。

目录

PostGIS主要有四个关于聚类的函数

我在实验时主要用的是ST_ClusterDBSCAN函数。

ST_ClusterDBSCAN的使用方法

integer ST_ClusterDBSCAN(geometry winset geom, float8 eps, integer minpoints)

ST_ClusterDBSCAN有三个参数:

具体使用

-- st_transform是将空间字段转换到投影坐标系下,以米为单位计算聚类半径
select shape, ST_ClusterDBSCAN((st_transform(shape,3857)),eps := 200.0, minpoints := 1) over () AS cid from dt_yzebdb

-- 空间加属性聚类
select shape, ST_ClusterDBSCAN((st_transform(shape,3857)),eps := 200.0, minpoints := 1) over (partition by id_of_insured,policy_no,year,species_code) AS cid from dt_yzebdb

空间聚类效果

聚类效果

标签:minpoints,大批,ST,shape,geom,PostGIS,聚类,ClusterDBSCAN
来源: https://blog.csdn.net/GISuuser/article/details/121271247