Cesium is a WebGL-powered JavaScript mapping library what offers just that by being provider-agnostic. When building any map-related applications, there are many popular providers to select from like Google Maps or Bing Maps and they provide APIs for integration.
It has support for 3 different views: 3D globe, 2D map, and 2.5D Columbus View where transitioning from one to another is just a line of code.
Drawing any type of shapes, highlighting specific regions and interacting with the map using mouse or touch is pretty easy.
Cesium comes as a single JS file and work in all major browsers including mobile.
Requirements: No Requirements
Website: http://cesium.agi.com/
Demo: http://cesium.agi.com/demos.html
Download: http://cesium.agi.com/downloads.html