I am working on a web-based mapping system and I'm trying to figure out which library to use.
These are links to comparisons of available libraries:
- Laurent Jegou's benchmark (from 2010) is a global outlook on web mapping solutions (both client and server).
- comparison of FOSS libraries by German Carrillo can be found here:
The list of libraries so far:
- Google Maps
- Microsoft Virtual Earth
- MapQuest
- Leaflet - "The comment smaller, faster, newer, and more straightforward can also be read as less features and less tested." -Geographika (see below)
- ArcGIS API for JavaScript - Works best with ArcGIS Server (see below). Google Maps and Bing maps extensions are also available, letting you use the ESRI API with Google/Bing maps (though this is true of most libraries).
- Yahoo Map API's
- Via Michelin
- OpenLayers - Extensive documentation and a good amount of functionality plus the ability to use different map providers.
- Mapquery - MapQuery has been released and now has some useful documentation It has the very worthwhile goal of combining OpenLayers and jQuery. If you're particularly keen on the idea of OpenLayers + jQuery, or if you want to contribute to a JavaScript Mapping Library then get involved and contribute your efforts. However if you just want to be an end user, or are new to this area it may not be for you.
- Mapstraction - Makes things very simple, especially working with multiple basemap providers. However it is still a work in progress and the functionality is lacking in places, as is the documentation. (E.g. "A GeoJSON object with the type “FeatureCollection” is a feature collection object." Not very informative.) It appears that it is still being actively developed but as of 4/4/11 there hasn't been a commit on Github since January.
- deCarta - Has a mobile and desktop javascript - first is HTML5/CSS3 compliant and the second has more browser compatibility. Source code provided. Friendliest developer terms for a commercial API. You are allowed to brand the map and there are several different map styles. You can choose NAVTEQ or OSM data. They also have several Mobile APIs as well. - edited by TheSteve0 - a deCarta employee
- Cloudmade
- Polymaps - Makes it very easy to composite raster and vector data from many different sources. Lets you easily add your own colouring, grouping, and interaction. Runs quickly, manages background tile loading well, and is only 30k of Javascript. One potential down side: it uses SVG which means it does not and will not work in MSIE 7 or 8. It works great in every other browser and should work in IE9
- Jump - jump is a light weight maps library that works on its own, meaning, it is not a wrapper for OpenLayers or GoogleMaps API. Currently it is under development, but a lot of essential features work well.
- ModestMaps - Another smaller, faster, newer JS mapping library from the makers of Mapbox and TileMill.
- Mapiator
OpenLayers is the one I am currently using. You can do a lot with it and it supports most data types. However it's not the best for everything. For example, Leaflet seems smoother in many ways, with image fading and other visual tweaks. If you're into jQuery you might like to check out MapQuery which is like a combination of jQuery and OpenLayers.