L'opérateur de distance <->
fonctionne bien entre les points et les polygones.
Vous pouvez interroger comme ceci :
SELECT b.*
FROM osm_buildings AS b
ORDER BY b.polygon <-> 'POINT(3.14 2.78)'::geometry
LIMIT 10;
Cela obtiendra les 10 bâtiments les plus proches de ce point.
Cette requête peut utiliser un index sur le polygon
colonne.