Every year on the third Wednesday of November, map geeks around the world (myself included) celebrate GIS Day. Short for geographic information systems, or occasionally geospatial information science, GIS is all about using computer systems to collect, store, analyze, and display geographic data, or really any data that has a spatial component.
The past decade has changed GIS immensely. With the advent of data mining, machine learning, mobile applications, the Internet of Things, social media, and other recent additions to the computing landscape, there are orders of magnitude more data available across every discipline, and the race to do useful and interesting things is in full throttle. Once limited to more traditional realms like land records, agriculture, natural resources, and urban planning, GIS now permeates practically every field.
Many people familiar with Google Maps immediately turn to the Google Maps API for getting started, but Google Maps are far from the only option. In fact, there are many open source alternatives which are better fit to specific needs, whether those needs are displaying something very basic with minimal overhead, or a complex application with many diverse components and integrations.
If you're looking to get started with web mapping, here are three libraries which are worth checking out.
Leaflet also has a strong documentation project behind it, making it a good choice for beginners, and there are a number of community-contributed examples out there on the Internet for when you get stuck, as well as many examples on the project homepage. Leaflet's source code is available on GitHub and it is licensed under a BSD license.
Though Leaflet can be considered a minimalist library, Modest Maps may win an award for being even smaller. Also very modular in design, Modest Maps is a great choice for both simple maps and for people who wish to pick-and-choose components. Check out their example library for more ideas of what you might do with it.
Of course, the three we looked at aren't the only options. There are many others, and depending on what your specific needs are, you should probably spend some time exploring all of the options before making a decison of where to get started. Some others I like include:
- OpenLayers, which you might think of as the kitchen sink of web map programming. I often use OpenLayers when working with GeoServer; if you use the open source OpenGeo Suite for building a complete GIS solution, all of the components integrate nicely.
- Mapael, which is a jQuery library for building attractive map visualizations with vector data.
- Cesium, which is very specifically meant for creating WebGL visualizations of data mapped onto 3D globes. If this interests you, some of the demos are amazing.
For others, the OpenGeo Foundation provides a fairly comprehensive list of web mapping tools, but be warned, they are in various states of scope and production-readiness.
The nice thing about using these libraries is that they encourage mixing and matching to style maps perfectly for your needs. Don't like the default map layer which sits underneath your map? Pick a different one. Prefer a different icon for representing points on your map? No problem.
Is there a favorite web mapping API we didn't mention here that you think would be a good fit for beginners? Let us know in the comments below. And have a happy GIS Day!