Technology

SpiffyMap has developed innovative software to implement our fully customisable web maps. This page outlines these areas of innovation. We're not yet ready to reveal in detail how we've solved all these exceedingly difficult technical challenges. But if you're interested in our approach to them, this summary may shed some light on that.

Challenges

When we looked at existing popular web maps, we realised that while they're quite good for finding your way around in a car on public roads, they're not good at communicating information about the ‘last mile’ and they're hard to make fit into a highly designed, branded website. Both of these are because of the lack of customisability. Only by allowing companies to change the style (colour, line width and style such as solid/dotted, whether a label appears or not, etc.) of every single feature on the map would this problem be solved. A fully customisable map, in other words.

The reason that nobody else has provided fully customisable web-based maps until now is because there have been some big problems to overcome - had you asked someone what those were a year or two ago, they would have mentioned these:

  1. The data is expensive and comes with very restrictive licensing conditions
  2. If you're going to render a different map for each customer on your own servers, that would need a colossal investment in infrastructure - even the biggest search engines don't offer this, so let's just call it ‘prohibitive’!
  3. But if you're going to render it on the client, browsers are too slow...
  4. ...unless you use a plugin-based language like Flash, Silverlight or Java applets; but not every user has any of those
  5. And if you're not going to use a plugin, there are a wealth of browser variations to take into account
  6. Leaving aside how the software will run, there's the issue of getting the data to the client - the network is the bottleneck, so you need to minimise the amount of data sent, but existing formats concentrate on openness and/or a stable API, rather than speed.

The language choice is particularly knotty. Silverlight and Flash aren't available on all platforms; and Flash has the additional issue that there are lots of different versions of the plugin out there - you can't just code for the latest version. That leaves Java, but the Java plugin has the lowest browser penetration of these choices, and a reputation for slow start-up times.

The only language that works across all browsers is Javascript, and that has all sorts of compatibility problems to work around. Doing that massively increases the complexity of your software, but there's very little tooling or community suited to developing and maintaining massively complex Javascript codebases.

Solutions

Fortunately, ongoing changes in the mapping and software industries have eased some of these problems. We spotted these trends early and have used them to our advantage.

  1. Map data from OpenStreetMap has business-friendly licensing and is getting rapidly better as the number of contributors grows exponentially. In the UK, Ordnance Survey has also released some of its data. SpiffyMap uses both of these and data from other sources.
  2. We render maps on the client, which is both more flexible and easier to scale up to large numbers of customers. Having everything run on the server side is so last decade. Of course, this means sending ‘vector’ map data to the client to render.
  3. At the moment all the browser makers are competing strongly with each other to increase the speed of their browsers by huge amounts.
  4. We don't depend on a plugin, which means we can boast that our rendering on the client works with all clients in all popular browsers, even IE6. (Very much the least popular browser among web developers!) It even runs OK in browsers on smartphones.
  5. Managing the complexity of running very sophisticated software with a variety of versions is a large part of what's innovative about SpiffyMap's system.
  6. Because we have a proprietary solution, we can optimise for speed rather than any other considerations. Because of this, and because client and server-side run in close co-operation, we have crunched the amount of data sent to clients massively. This makes the user experience faster and also helps us to scale.

Delivering fully customisable maps, rendered from vectors on the client, has been a been a project of considerable complexity. This big-scale software project ultimately succeeded because of SpiffyMap's strong background in enterprise-scale software development, software project management, and because of the ingenuity of our highly-qualified developers.

The end result of these labours will be available soon - starting with our beta-testing programme. For more information about that, drop us an email to beta@spiffymap.com letting us know your interest. Or if you'd just like to be notified when we release more details, contact prelaunch@spiffymap.com and we'll get back to you when that time arrives. It won't be long!