With the recent PostgreSQL/PostGIS version, you can now use the
<-> operator to find the nearest rows to a point:
Indexed Nearest Neighbour Search in PostGIS
According to my tests, this query:
SELECT name, gid FROM geonames ORDER BY geom <-> st_setsrid(st_makepoint(-90,40),4326) LIMIT 10;
is the same precision and a bit slower than if I use the PostgreSQL Point type.
I would like to use this new operator with the Geography type to do better calculus on a spheroid. Is this possible?