如何在postgis中检测其他(许多)多边形内的多边形

how to detect polygons within other (many) polygons in postgis

我有两个数据集:1. ZipCodes 和 2. Neighborhoods(将它们想象成县)。

我想加入邮政编码覆盖的每个社区。大多数社区只会在一个邮政编码范围内,但在某些情况下,社区会跨越两个邮政编码。例如:

社区 1 在 20001 内
邻里 2 在 20002
内 邻里 3 在 20001,20002

这是我目前的情况:

SELECT name, zipcode  
FROM    
neighborhood_names nn, dc_zipcode_boundries dzb
WHERE ST_Intersects(nn.the_geom, dzb.the_geom);

注意:根据评论更新到内部,现在得到每个社区的答案,但仍然无法让 Array 函数按预期响应。

我明白了。感谢约翰的帮助。我的陈述需要一个分组依据(这就是错误所说的,只是需要一些时间来消化它才能点击)。

下面的代码片段适用于所有关注

的人
SELECT name, array_to_string(array_agg(zipcode), ',') 
FROM    
neighborhood_names nn, dc_zipcode_boundries dzb
WHERE ST_Intersects(nn.the_geom, dzb.the_geom)
group by name