The mySociety Gazetteer web service
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
commonlib @ 0cf06dc
data Update list of FIPS ADM1 codes. Dec 15, 2011


Gaze is a web service that can do the following:

* Find the population density at a particular point (using GPW data)
* Return the radius of a circle around a point containing a number of people
* Find placenames around a point, limited to population or distance.
* Perform a placename geocoding of a search query (using USGS and GEOnet Names data)
* Return the ISO country code for an IP address

It is used on e.g. FixMyStreet to work out how wide to search to show reports
for a particular map, or on PledgeBank for local search.


$ git clone git://
$ mkdir gaze-data
$ cd gaze
$ cp conf/general-example conf/general

Edit the conf/general file to have the database connection parameters, and the
location of two directories to store the Xapian and GPW data.

Set up a PostgreSQL database called gaze.

Fetch the single compressed zip that contains the entire country files dataset
from and unzip it in the
gaze-data directory. For the US, fetch and unzip the Populated Places dataset
from in the same place.

Then run the following (replacing the input filenames with whatever you've just

$ psql gaze gaze < db/schema.sql
$ cd ../gaze-data
$ ../gaze/bin/usgs-geonames-parse < P_PLACES_20111204.txt
$ ../gaze/bin/xapian-index US
$ ../gaze/bin/geonames-split < geonames_dd_dms_date_20111212.txt
$ ../gaze/bin/load-all

This will set up all the place name related stuff. TODO: Document gpw-parse
beyond the comments in it - converting Gridded Population of the World data
into the format Gaze uses.