PostGIS是否有方法能将一个Polygon面切割成若干份小的Polygon面,且每一份的面积差不多大

news/2024/7/23 10:57:49 标签: 数据库, sql

问题

    PostGIS是否有方法能将一个Polygon面切割成若干份小的Polygon面,且每一份的面积差不多大?



   其实并没有现成的方法,但是通过灵活运用postgis函数可以快速实现这样的功能,总共只要简单的5步就可以了,下文具体说明。

二 步骤分解

2.1 准备测试数据

本文选择南京市行政区边界作为测试数据。

create table nanjing as

select name,geom from city where name=‘南京市’;

2.2 面内生成任意数量点

本文在南京区域内生成2000测试点。

CREATE TABLE nanjing_points AS

SELECT (ST_Dump(ST_GeneratePoints(geom, 2000))).geom

AS geom FROM nanjing;

2.3 点聚合成簇

使用ST_ClusterKMeans均值中心聚类分析,把散点聚簇分类。

CREATE TABLE nanjing_pts_clustered AS

SELECT geom, ST_ClusterKMeans(geom, 10) over () AS cluster

FROM nanjing_points;

2.4 提取簇的中心

CREATE TABLE nanjing_centers AS

SELECT cluster, ST_Centroid(ST_collect(geom)) AS geom

FROM nanjing_pts_clustered GROUP BY cluster;

2.5 使用voronoi算法生成面

CREATE TABLE nanjing_voronoi AS

SELECT (ST_Dump(ST_VoronoiPolygons(ST_collect(geom)))).geom AS geom

FROM nanjing_centers;

2.6 使用ST_Intersection方法切割

用voronoi算法构成的面,去切割原始的南京行政区边界:

CREATE TABLE nanjing_divided AS
SELECT ST_Intersection(a.geom, b.geom) AS geom
FROM nanjing a
CROSS JOIN nanjing_voronoi b;

三 总结

    Postgis中造数据

http://www.niftyadmin.cn/n/5096037.html

相关文章

Unity中Shader的深度写入ZWrite

文章目录 前言一、更新深度缓冲区中值二、深度值的写入操作只有两个选择 开启 和 关闭ZWrite OnZWrite Off 三、深度写入在半透明物体物体中开启的情况1、特效一般都需要关闭深度写入2、如果在人物模型上使用 特效半透明 的 Shader,为了不出现模型自身穿透问题&…

持续集成部署-k8s-资源调度:StatefulSet

持续集成部署-k8s-资源调度:StatefulSet 1. StatefulSet 简介2. 定义一个有状态服务3. 扩容缩容与滚动更新4. 删除更新5. 级联删除与非级联删除1. StatefulSet 简介 在 Kubernetes(K8s)中,StatefulSet是一种控制器对象,用于管理有状态应用程序的部署和扩展。与Deployment…

【AOP系列】6.缓存处理

在Java中,我们可以使用Spring AOP(面向切面编程)和自定义注解来做缓存处理。以下是一个简单的示例: 首先,我们创建一个自定义注解,用于标记需要进行缓存处理的方法: import java.lang.annotat…

15-k8s-高级存储之pv与pvc

文章目录 一、相关概念二、创建pv二、创建pvc三、创建pod调用pvc四、StorageClass动态制备pv 一、相关概念 关系 生命周期相关概念 2.1 静态构建:集群管理员创建若干PV卷。这些卷对象带有真实存储的细节信息,并且对集群用户可用(可见)。PV卷对象存在于Kubernetes …

OpenCV Series : TI - DSP - CCS

Code Composer Studio V5.5 https://www.ti.com/tool/download/CCSTUDIO https://www.ti.com/tool/download/CCSTUDIO/5.5.0.00077

微信小程序里配置less

介绍 在微信小程序里,样式文件的后缀名都是wxss,这导致一个问题,就是页面样式过多的时候,要写很多的类名来包裹,加大了工作量,还很有可能会写错样式。这时可以配置一个less,会大大提高代码编辑…

符尧:别卷大模型训练了,来卷数据吧!【干货十足】

大家好,我是HxShine。 今天分享一篇符尧大佬的一篇数据工程(Data Engineering)的文章,解释了speed of grokking指标是什么,分析了数据工程(data engineering)包括mix ratio(数据混合…

语法分析出错,不是 GROUP BY 表达式

报错 ### Cause: dm.jdbc.driver.DMException: 第 9 行, 第 69 列[30]附近出现错误: 语法分析出错 ; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 9 行, 第 69 列[30]附近出现错误: 语法分析出错at org.springframework.jdbc.support.SQLState…