У меня есть таблица полигонов (групп блоков переписи) в postgres. Я хочу пометить каждую группу блоков городом (еще одной таблицей полигонов), в котором он находится в основном. Это возможно? Я думаю, мне нужно по сути создать что-то вроде:
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
но этот запрос занимает вечность (у меня около 5000 групп блоков и 375 городов ...). Любые предложения о том, как заставить этот запрос работать вообще, если он неправильный, или быстрее, если он правильный?