Sql 需要每个多边形的缓冲多边形邻域的多边形相交计数
我试图找出在纯SQL中是否可能生成一个表,其中包含层中每个多边形与其缓冲版本中相应相邻多边形(缓冲)的相交数 粗糙和有缺陷的版本如下:Sql 需要每个多边形的缓冲多边形邻域的多边形相交计数,sql,postgis,Sql,Postgis,我试图找出在纯SQL中是否可能生成一个表,其中包含层中每个多边形与其缓冲版本中相应相邻多边形(缓冲)的相交数 粗糙和有缺陷的版本如下: For each value in list: SELECT Count(*) INTO intersectcounts FROM parcels,parcelsbuffered WHERE parcels.apn = value AND ST_INTERSECT(parcels.geom,parcelsbuffered.
For each value in list:
SELECT
Count(*)
INTO
intersectcounts
FROM
parcels,parcelsbuffered
WHERE
parcels.apn = value AND ST_INTERSECT(parcels.geom,parcelsbuffered.geom)
这里的几何图形是多边形
我需要这样的结果
交叉扫描表
APN COUNT
100 3
101 87
...
...
我可以使用python循环并在WHERE子句中使用不同的值修改查询字符串,但我认为这不会有好的性能-有数千个地块(多边形)
您可能希望包括一些验证,以删除带有自己缓冲版本的地块,如
(count(*) - 1) as intersectcounts
或
其中parcerls.apn parcelsbuffer.apn
为什么要使用缓冲区?试着改用,这会更快更准确。
(count(*) - 1) as intersectcounts
WHERE parcerls.apn <> parcelsbuffered.apn