L'operatore di distanza <->
funziona bene tra punti e poligoni.
Puoi interrogare in questo modo:
SELECT b.*
FROM osm_buildings AS b
ORDER BY b.polygon <-> 'POINT(3.14 2.78)'::geometry
LIMIT 10;
Questo otterrà i 10 edifici più vicini a quel punto.
Quella query può utilizzare un indice sul polygon
colonna.