计算多边形中的多个点层

时间:2019-04-24 13:42:47

标签: postgresql postgis

我试图在sql查询中计算贸易区多边形内的不同商店。每个商店在我的postgis数据库中都是一个不同的表。

可以使用以下https://gis.stackexchange.com/a/54680/19349中的以下代码来计算多边形中的点:

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

我修改了代码以允许多个点:

SELECT grid.gid, 
count(DISTINCT store1.geom) AS store1_count,
count(DISTINCT store2.geom) AS  store2_count
FROM grid
LEFT JOIN store1
ON st_contains(grid.geom,store1.geom)
LEFT JOIN store2
ON st_contains(grid.geom,store2.geom) 
GROUP BY grid.gid;

这可行,但是肯定需要一种更好的方法,因为连续的左联接将成倍地恶化执行时间。

0 个答案:

没有答案