如何在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
我有两个数据集: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