【问题标题】:Joining point value to polygon with With statements使用 With 语句将点值连接到多边形
【发布时间】:2019-01-22 08:46:02
【问题描述】:

我已经加载了一个函数 hex_grid,它工作正常see here 但现在我有一个六边形网格,我想将多边形层中重叠质心点的所有值相加。我使用 with 语句让事情变得有点整洁,两个 select 语句都按预期工作,我的问题在加入时出现,显然我做错了什么但我看不到它,任何帮助将不胜感激。这是代码。十六进制和点都在同一个crs中。

with hex AS(
SELECT hex_grid(
1, 
(ST_XMIN(sa.geom)), 
(ST_YMIN(sa.geom)),
(ST_XMAX(sa.geom)),
(ST_YMAX(sa.geom)),
32635, 32635, 32635) as geom_h
FROM geodata.study_area sa),

points AS(
SELECT count(*) as count, ST_Centroid(su.geom) AS geom_p
FROM clas.survey_unit su
group by su.geom
)

SELECT hex.geom_h, points.count 
FROM hex     
JOIN points 
ON ST_Contains(points.geom_p, hex.geom_h)
group by hex.geom_h, points.count;

【问题讨论】:

    标签: sql postgresql postgis


    【解决方案1】:

    ST_Contains 应该首先包含多边形,其中包含点

    ON ST_Contains(hex.geom_h,points.geom_p)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 2016-06-01
      相关资源
      最近更新 更多