Eu tenho uma tabela de polígonos (grupos de blocos de censo) no postgres. Quero marcar cada grupo de blocos com a cidade (outra tabela de polígonos) em que reside principalmente. Isso é possível? Estou pensando que precisaria essencialmente criar algo como:
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
mas essa consulta está demorando uma eternidade (eu tenho cerca de 5.000 grupos de blocos e 375 cidades ...). Alguma sugestão sobre como fazer essa consulta funcionar, se estiver incorreta ou mais rápida, se estiver correta?