conf/application.conf and point it to a MongoDB installation, and execute
Then put the CodePoint Open CSVs (scroll halfway down, 20mb)
After they are processed, they will be moved to the
GET http://localhost:9000/latlng/POSTCODE to geocode a UK postcode. Response will be JSON:
Deploy to Cloud Foundry
This project includes a manifest.yml file that can be used to push the app to Cloud Foundry.
The value of "mem" in the manifest may be need to be adjusted depending on how much data you place in the codepointopen directory. Rough tests showed 1.4G used for files ab.csv-de.csv.
play -Dconfig.file=conf/cloud.conf clean pdist (not a typo, pdist is a new task to include codepointopen files in the dist) vmc push
- Play Framework 2.0, thank god for this!
- Apache Camel to process and monitor the
codepointopendirectory and to tell the actors about the postcodes (split(body()))
- Akka 2.0 provides a nice concurrent model to process the 1.7 million postcodes in under one minute on modern hardware
- GeoTools 8 converts the eastings/northings to latitude/longitude
- Guice for Dependency Injection (not too much to inject yet though)
- Metrics for metrics
- MongoDB and Morphia as storage and ORM
- Leaflet for the map
- Twitter Bootstrap and Font Awesome for the UI
Licensed under the WTFPL.
This data contains Ordnance Survey data © Crown copyright and database right 2011. Code-Point Open contains Royal Mail data © Royal Mail copyright and database right 2011. Code-Point Open and ONSPD contains National Statistics data © Crown copyright and database right 2011.
OS data may be used under the terms of the OS OpenData licence.
- Fix distance calculation, Morphia does't do geoNear yet (grmbl)
- Add add a map using Leaflet displaying all UK postcodes (need to think how to dynamically add layers depending on zoom level)