用Postgis计算多边形中的点


16

我有一个简单的问题:我想计算一组多边形中的点数。

我已经有一个SQL,但它只返回实际包含点的多边形的gid。

我的表格:包含19.000行的多边形层和包含450行的点层。

下面的SQL

select grid.gid, count(*) AS totale FROM grid, kioskdhd3 WHERE 
st_contains(grid.geom,kioskdhd3.geom) GROUP BY grid.gid;

仅返回一些实际包含点的320个多边形。但是我想返回所有多边形,甚至以为点数为0。

当然,这与我的WHERE条款有关。我必须在哪里放置我的st_contains?

谢谢卡斯滕



谢谢,但是他们都有一个WHERE条款。我不知道我是否需要一个。您将如何重写它?
hoge6b01

Answers:


23
SELECT grid.gid, count(kioskdhd3.geom) AS totale 
FROM grid LEFT JOIN kioskdhd3 
ON st_contains(grid.geom,kioskdhd3.geom) 
GROUP BY grid.gid;

嗨,尼克拉斯,从邮件列表中得到了这个答案,对吗?谢谢大家
hoge6b01 2013年

2
不,对不起,类似吗?好吧,在处理关系数据库时,外部联接不是火箭科学;-)
NicklasAvén2013年

1
:-)我不得不检查列表。看看时间。我的回答是在列表回答之前,但正如您所说,非常相似:-)
NicklasAvén2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.