O operador de distância
<->
funciona bem entre pontos e polígonos. Você pode consultar assim:
SELECT b.*
FROM osm_buildings AS b
ORDER BY b.polygon <-> 'POINT(3.14 2.78)'::geometry
LIMIT 10;
Isso fará com que os 10 edifícios mais próximos a esse ponto.
Essa consulta pode usar um índice no
polygon
coluna.