Distansoperatören <-> fungerar bra mellan punkter och polygoner.
Du kan fråga så här:
SELECT b.*
FROM osm_buildings AS b
ORDER BY b.polygon <-> 'POINT(3.14 2.78)'::geometry
LIMIT 10;
Detta kommer att få de 10 byggnaderna närmast den punkten.
Den frågan kan använda ett index på polygonen
kolumn.