The mySociety Gazetteer web service
Perl HTML SQLPL Shell Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
commonlib @ 0cf06dc


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.