El operador de distancia <->
funciona bien entre puntos y polígonos.
Puede consultar así:
SELECT b.*
FROM osm_buildings AS b
ORDER BY b.polygon <-> 'POINT(3.14 2.78)'::geometry
LIMIT 10;
Esto obtendrá los 10 edificios más cercanos a ese punto.
Esa consulta puede usar un índice en el polygon
columna.