Ich habe eine Tabelle mit Polygonen (Zensusblockgruppen) in Postgres. Ich möchte jede Blockgruppe mit der Stadt (einer anderen Polygontabelle) versehen, in der sie sich hauptsächlich befindet. Ist das möglich? Ich denke, ich müsste im Wesentlichen Folgendes erstellen:
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
aber diese Abfrage dauert ewig (ich habe ungefähr 5.000 Blockgruppen und 375 Städte ...). Irgendwelche Vorschläge, wie diese Abfrage funktioniert, wenn sie falsch ist oder schneller, wenn sie korrekt ist?