Mapstraction introduces a layer of abstraction between the developer and the various map provider APIs. This allows the developer to write the application only once (for the abstration layer) and support all of the APIs simultaneously. It also allows the map provider to be chosen at runtime - eg. by region according to data coverage, or the end user's personal choice.
The Mapstraction project is under continuous development, with progress recorded in a roadmap and a feature matrix. Despite the appearance of being partially developed, Mapstraction already supports eleven "providers":
Microsoft Bing Maps (nee Virtual Earth)
MultiMap - both the commercial and OpenAPI interfaces
OpenSpace (British Ordnance Survey)
Supported features currently include: map size/zoom/pan, add/remove controls, add/remove/declutter markers, add/remove polylines, image overlays, JSON, tile layers, and various marker & polyline attributes (icons, text, color, etc).
Mapstraction has an interactive API "sandbox". This is similar to the increasingly popular "interactive SDKs" that are often included in online documentation, but it also allows the reader to edit the code. The interactive API "sandbox" can be found athttp://mapstraction.appspot.com/ .
So how easy is it switch between different map providers 'on the fly'? Very easy as it turns out. The following example (from the interactive API sandbox) implements a set of radio buttons allowing the user to change map providers: [...]