Interactive Mapping9 June, 2014
Recently I was set the challenge of replacing an interactive mapping application that we ran for Northampton Borough Council. The product I was to replace had an annual support fee and upgrade cost attached to it and we were at a point where an alternative was needed.
With no budget and a limited brief, prototyping something quickly and iterating seemed like a good plan; I've found it's been easier for the product owner to critque and comment on something that they can play with and point at.
Knowing the basic needs was pretty key;
- see a map of the town that can be dragged around and zoomed
- be able to view layers of information over the map
- be able to turn the layers of information on and off
- be able to select a point on the map and see information about that location
Once I'd got a basic map going, we started to revisit some of the functionality available on neighbouring Daventry District Council's mapping app. Although there's some great functionality on Daventry's site, we weren't so keen on the loading progress bar or the tight window that the map had been placed in. So we wrote some new 'needs' that weren't neccesarily true needs but they helped inform the design decisions:
- the map must be immersive and the main focus of the application
- the experience must not be interrupted unless a decision is required
To this end, we made the map cover the whole screen ala Google Maps because it gives a clear indication of the primary function of the application, it also gives more room to view the map itself. I also reworked the loading of the information layers so that they loaded silently in the background on page load. The interface then updates in the background as each layer is retrieved from the server. The idea is that the user has an instant on/off experience with each layer because they've been loaded on page load but they're also never interrupted.
One of the things we found at this time was that Geoserver was great at serving the vector layers but really struggled with the base map raster layers. Even with compression quite high and pushing the server up a notch or two, the response times just weren't good enough and after about an hour of reasonable use, Geoserver fell over.
I went on the hunt for an alternative and arrived on a revamped offering from Ordnance Survey, OS Open Space.
OS OpenSpace provides a set of free services and tools to enable developers to create online and mobile applications using Ordnance Survey maps
I swapped OpenLayers for OS OpenSpace and only had to amend a couple of lines before the whole thing was up and running smoother than ever. With the base map now being served from OS directly, the refresh rate was fast and the quality of the tiles themselves was far higher than we were able to produce ourselves.
The final piece of the puzzle after this was a property search. Being able to find a specific property or place on the map was one of the final key requirements for initial launch. After a bit of internal faffing about I managed to knock up a quick search API against a view of our LLPG and hook that API up to the map.
The new mapping application will continue to be iterated on so who knows what's next. The current version is available to view here and we've made the front-end app available on Github too. Feel free to fire any questions at me if you're looking to do a similar thing.