A tech demo built using Play Framework 2.2 (Java) that imports the CodePoint Open UK postcode dataset and offers a Geocoding RESTful API and a map. It also demonstrates how Google Guice can be integrated in a Play Framework Java application.
Follow @analytically for updates.
- Java 6 or later
- Play Framework 2.2.1
- MongoDB
Edit conf/application.conf and point it to a MongoDB installation (defaults to localhost:27017), and execute
play runThen drop the CodePoint Open CSV (scroll halfway down, 20mb)
files in the codepointopen directory.
After each file is imported, it will be moved to the codepointopen/done directory.
Then visit http://localhost:9000 and you should see the welcome screen. Check out the server metrics or the map.
GET http://localhost:9000/latlng/POSTCODE to geocode a UK postcode. Response will be JSON:
{"latitude":51.505615,"longitude":-2.6120315}- Play Framework 2.2.1, as web framework
- Apache Camel to process and monitor the
codepointopendirectory and to tell the actors about the postcodes (split(body())) - Akka provides a nice concurrency model to process the 1.7 million postcodes in under one minute on modern hardware
- GeoTools converts the eastings/northings to latitude/longitude
- Guice for Dependency Injection (not too much to inject yet though)
- Metrics for metrics
- MongoDB as database with two-dimensional geospatial indexes (see Geospatial Indexing)
- Morphia for 'Object-Document Mapping'
- Leaflet for the map
- Bootstrap and Font Awesome for the UI
Licensed under the WTFPL.
This data contains Ordnance Survey data © Crown copyright and database right 2013. Code-Point Open contains Royal Mail data © Royal Mail copyright and database right 2012. Code-Point Open and ONSPD contains National Statistics data © Crown copyright and database right 2013.
OS data may be used under the terms of the OS OpenData licence.


