select round((point(2.2728913,48.8821175) <-> geoname.location)::numeric, 3) as dist, country.iso, region.name as region, district.name as district from geoname.geoname left join geoname.country using(isocode) left join geoname.region using(isocode, regcode) left join geoname.district using(isocode, regcode, discode) order by location <-> point(2.2728913,48.8821175) limit 1;