Tôi có một bảng đa giác (nhóm khối điều tra dân số) trong postgres. Tôi muốn gắn thẻ cho từng nhóm khối với thị trấn (một bảng đa giác khác) mà nó chủ yếu nằm trong đó. Điều này có thể không? Tôi nghĩ rằng về cơ bản tôi cần tạo ra một cái gì đó như:
select b.*,t.name
from blockgroups b, towns t
where (st_area(st_intersection(b.wkb_geometry, t.wkb_geometry))/st_area(b.wkb_geometry)) > .5
nhưng truy vấn này mất nhiều thời gian (tôi có khoảng 5.000 nhóm khối và 375 thị trấn ...). Bất kỳ đề xuất nào về cách làm cho truy vấn này hoạt động cả nếu nó không chính xác hoặc nhanh hơn nếu nó đúng?