Mapping Toolkits*


October, 2021 —

The world of mapping is evolving fast. There is a plethora of ‘tools’ on offer, that are ever-more accessible, democratising the agency of mapping. Below I outline some of the tools employed for online and mobile mapping, with a focus on open-source. By no means, extensive, but a good introduction.


The OpenStreetMap (OSM) project started some 17 years ago, and no better example of democratised mapping exists. OpenStreetMap is built by a community of mappers that contribute and maintain data about roads, trails, cafés, railway stations, and much, much more, all over the world. OpenStreetMap’s community is diverse, passionate, and growing every day. Their contributors include enthusiast mappers, GIS professionals, engineers running the OSM servers, humanitarians mapping disaster-affected areas, and many more. It’s a dataset that is constantly being expanded and refined, so much so that it is becoming an acceptable source for public bodies to use to overlay their own geospatial data. OpenStreetMap is open data; you are free to use it for any purpose as long as you credit OpenStreetMap and its contributors. It’s an excellent mapping resource and is often the foundation for much of what else is described here.


Since it’s inception around eight years ago, Mapbox has already developed to become one of the pre-eminent mapping frameworks available with a very large user base. It's built on the OSM and extends it, offering a wide range of tools to access and build maps and mapping apps, from styling your own maps, via Mapbox Studio, to building data visualisation apps and 3d terrain atlases. There are almost endless possibilities via various cross-platform SDKs and APIs. In fact there are too many solutions and industry applications to cover here. There are arguably a few anomalies with the way Mapbox works, but the evolution and development is fast-paced and offers excellent opportunities for all types of user, and you can start mapping for free!


OpenLayers is a high-performance, feature-packed JavaScript library for mapping. OpenLayers makes it easy to put a dynamic map in any web page. It can display map tiles, vector data and markers loaded from any source. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, open-source JavaScript, released under the two-clause BSD License (also known as the FreeBSD). Like a lot of the tools here, OpenLayers can access a wide range of map tile services including those from Mapbox, Bing, OSM and others. Data types can includes GeoJSN, TopoJSN, KML, GML, Mapbox vector tiles and more. It leverages Canvas 2d , WebGL and HTML 5 to build online apps. As it also common here, there is an API for a more customised approach. One for those at ease with working with code.


Targetted more towards spatial analysis, CARTO is a feature reach platform that helps you creat map-based dashboards to “store, enrich and visualise data to make spatially-aware decisions.” It can connect with a wide variety of data sources whereever they exist. It’s another platform that has a ‘drag-and-drop’ interface and does not require expertise in mapping or databases to be able to use it. Another impressive solution. CARTO unlocks the power of spatial analysis in the cloud, extending the visualization, analysis and development capabilities of the leading cloud data warehouse platforms, such as Google BigQuery, Snowflake and Amazon Redshift. As well as an API it has various development tools to integrate it with other libraries.

“We are on the edge of a geospatial transformation. No longer a simple data set for use in specific applications, location data will be integrated with data from a plethora of other sources to unlock rich new insights, power better decision-making and catalyse new products and services across all industry sectors. It has the potential to add billions to our economy, boost the quality of life and wellbeing among our communities, and help protect our planet.”

— The power of place—A sustainable future with geospatial insights, Knowledge Transfer Network and Ordnance Survey, 2020.

Who would have thought Uber would have jumped on the geopsatial bandwagon? Well, perhaps it’s not that unexpected from a company that generates a huge amount of location data. is a pwerful open-source geospatial analysis tool for large-scale datasets. Another toolbox not unlike CARTO and Mapbox, it enables you to visualise a large amount of location data in your browser, playback geo-temporal trends over time, explore, filter, and engage with location data to gain insight. As well as a browser-based tool, it’s also available as an API and ‘plugin’ for other analytical tools such as Jupyter Notebook and Tableau. Like CARTO, it to uses WebGL for rendering maps.


Leaflet is another open-source JavaScript library for making mobile-friendly interactive maps. It’s a light-weight library (39KB of JS) that has all the features most map developers need. It’s a very popular solution using the OSM. Leaflet is designed with simplicity, performance and usability in mind. It works efficiently across all major desktop and mobile platforms, can be extended with lots of plugins, has an easy to use and well-documented API and a simple, readable source code that can be contributed to. Simply, “Leaflet doesn't try to do everything for everyone. Instead it focuses on making the basic things work perfectly.”


d3.js is a JavaScript library for manipulating documents based on data. d3 helps you bring data to life using HTML, SVG, and CSS. d3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualisation components and a data-driven approach to DOM manipulation. It’s primarily aimed at providing an extensive array of data visualisation options, but has a strong mapping component as well. Developed and maintained by Observable, it’s perhaps one of the most reliable and powerful JS libarires available.


RAWGraphs is an open-source data visualisation framework built with the goal of making the visual representation of complex data easy for everyone. It was primarily conceived as a tool for designers and journalists, aimed at providing a missing link between spreadsheet applications (e.g., Microsoft Excel, Apple Numbers, OpenRefine) and vector graphics editors (e.g., Adobe Illustrator, Affinity Designer, Inkscape, Sketch). RAWGraphs is built on top of the d3.js library and can be used a browser-based service (Software as a Service; SaaS) working with delimiter-separated values (i.e., CSV and TSV files) as well as with copied-and-pasted texts from other applications (e.g., Microsoft Excel, Google Spreadsheets, TextEdit, etc.).


Another simple and lightweight framework for building interactive map applications without any other service, Kartograph was created with the needs of designers and journalists in mind. Kartograph is two libraries, Python and JavaScript. One generates compact SVG maps; the other helps you to create interactive maps that run across all major browsers. This one generally falls ‘under the radar’, but one I find interesting due to the interoperability of SVG with industry-standard illustration applications like Adobe Illustrator and Affinity Designer.

“Maps codify the miracle of existence.”

—Nicholas Crane


A project developed by SimpleGeo and Stamen, Polymaps provides the display of multi-zoom datasets over maps, and supports a variety of visual presentations for tiled vector data, in addition to the usual cartography from OpenStreetMap, CloudMade, Bing, and other providers of image-based web maps. Polymaps can load data at a full range of scales, so it’s capable of showing information from country level down to regions, cities, neighborhoods, and individual streets. Because Polymaps uses SVG to display information, you can use familiar, comfortable CSS rules to define the design of your data. Polymaps also uses the well known spherical mercator tile format for its imagery and its data to ensure publishing information is easier.


Maperitive is a free desktop application for drawing maps based on OpenStreetMap and GPS data. You can define what gets on the map and how it is painted. You can also export these maps into bitmaps and SVG files and print them. It has a lot of useful cartographic functions, including contouring, hillshading, styling options and output to 3d (Collada). Primarily, it is a Windows application but you can use on a Mac if you install the software platform, Mono, an open-source implementation of Microsoft’s .NET framework. Another interesting framework that often seems to be overlooked.


For a command-line approach, Python has very capable mapping abilities, but with add-ons. It’s freely downloadable from all operating systems. It needs GeoPandas to make working with geospatiaal data easier. Other Dependencies (libraries) such as matplotlib and contextily also help. There are more depndent upon the type of processing and transformation of data you need to carry out. Even as a intereted, object-orientated programming language with clear semantics, it is easier to learn and work with than ‘conventional’ programming languages, in part, as no compilation is needed.


Like Python, R is also a very capable tool for mapping. It’s freely downloadable from all operating systems, but also needs add-on packages to process and render geospatial datasets. Packages such as ggplot2, ggmap, maps, mapdata, rgdal, rgeos, dplyr, spData and raster all extend the functionality to match traditional GIS. RStudio is an integrated development environment (IDE) for R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management. RStudio is available as a free open-source edition as well as paid for editions.


Not strictly a language used for mapping, Processing still has excellent graphical capabilities. Originally developed as a teaching aid for humanities students interested in coding, it is now a professional development tool with hundreds of libraries available for data visualisation and numerous other functions such as music composition. Using Processing to create maps is more of a push, but a few libraries exist to help, including Modest Maps.


Mentioned here simply due to the relevance to other tools listed here, PostGIS is a spatial database extender for the PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL. An importnat tool for working with data prior to visualising as a map.