我正在执行layer1的Voronoi多边形(点,“几何字段”=几何)来创建layer2 (多边形,“几何字段”= geom)。以下命令起作用
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 =红色多边形)
但是,layer2中不会维护layer1中的任何字段。我想把field1和field2从layer1传递给layer2。
另外,我想在单个多边形层(layer3)的边界内裁剪结果。
谢谢
发布于 2018-03-29 15:14:22
到目前为止还没有答案,但我找到了我的问题的解决方案,我可以分享。
它不是很花哨,但它是有效的。我在layer1和Layer2之间应用了一个空间连接。由于每个多边形内部只有一个点(根据Voronoi的定义),它可以完美地工作。
执行voronoi (与上一篇文章相同)
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;执行空间连接
CREATE TABLE layer2 AS
SELECT layer1.*,layerTMP.*
FROM layerTMP, layer1
WHERE ST_Contains( layerTMP.geom, layer1.geometry);从voronoi中移除点图层(layer1)的"geometry“列和"path”列
ALTER TABLE layer2 DROP geometry;
ALTER TABLE WeatherAgri4CastID_grid DROP "path";希望这能对其他用户有所帮助;-)
https://stackoverflow.com/questions/49531535
复制相似问题