首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >应用ST_VoronoiPolygons和剪辑输出时传递字段

应用ST_VoronoiPolygons和剪辑输出时传递字段
EN

Stack Overflow用户
提问于 2018-03-28 17:59:40
回答 1查看 195关注 0票数 1

我正在执行layer1的Voronoi多边形(点,“几何字段”=几何)来创建layer2 (多边形,“几何字段”= geom)。以下命令起作用

代码语言:javascript
运行
复制
CREATE TABLE layer2
AS WITH voronoi (vor)
AS (SELECT ST_Dump(ST_VoronoiPolygons(ST_Collect(geometry)))
FROM layer1) SELECT (vor).path, (vor).geom FROM voronoi

结果看起来像这样(layer1 =绿点,layer2 =黑色多边形,layer3 =红色多边形)

Image of the 3 layers

但是,layer2中不会维护layer1中的任何字段。我想把field1和field2从layer1传递给layer2。

另外,我想在单个多边形层(layer3)的边界内裁剪结果。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 15:14:22

到目前为止还没有答案,但我找到了我的问题的解决方案,我可以分享。

它不是很花哨,但它是有效的。我在layer1和Layer2之间应用了一个空间连接。由于每个多边形内部只有一个点(根据Voronoi的定义),它可以完美地工作。

执行voronoi (与上一篇文章相同)

代码语言:javascript
运行
复制
CREATE TABLE layerTMP
AS WITH voronoi (vor)
AS (SELECT ST_Dump(ST_VoronoiPolygons(ST_Collect(geometry)))
FROM layer1) SELECT (vor).path, (vor).geom FROM voronoi;

执行空间连接

代码语言:javascript
运行
复制
CREATE TABLE layer2 AS
SELECT layer1.*,layerTMP.*
FROM layerTMP, layer1
WHERE ST_Contains( layerTMP.geom, layer1.geometry);

从voronoi中移除点图层(layer1)的"geometry“列和"path”列

代码语言:javascript
运行
复制
ALTER TABLE layer2 DROP geometry;
ALTER TABLE WeatherAgri4CastID_grid DROP "path";

希望这能对其他用户有所帮助;-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49531535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档