How to effectively visualize changes in historical data over multiple years?

I’m interested in exploring the possibility of viewing the changes and improvements made to OSM data over a span of several years. It would be like having a time machine that allows me to go back three years and compare the map’s appearance then to its current state.

I know that provides country dataset snapshots dating back to 2014, and JOSM can import them using a plugin. However, I’m wondering if it’s possible to generate an image using CartoCSS rendering or if there’s any other method to achieve this.

I’d appreciate any insights or suggestions you might have.


Maybe this might give you a hint: Timelapse videos - OpenStreetMap Wiki


Thank you! Is there anyone who has recently used these tools and can share their experience?

The osmium command line programme has a time-filter which might be useful for you to turn a history file into a snapshot at a particular point in time.

I wrote a simple script osm-mapping-party-before-after which makes it easier to generate images of an area at a specific point in time.


What I have done in the past is to convert historic country dumps into vector tiles using TileMaker. E.g. one tile set per year. Then you can render them as maps in the browser using one of the freely available vector styles. This can give you a “time machine” for a whole country or region.

1 Like

I think the request is about older versions of OSM, not recording the world as it used to be.


Many thanks to everyone for your incredibly valuable suggestions!

Given the limitations of time and hardware, I wanted to avoid installing large software programs.

I initially attempted the TileMaper vector approach, but faced difficulties with rendering and styling.

Leveraging my previous experience in developing a custom OsmAnd renderer, I utilized Osmium to generate a smaller geographic subset. By converting it into the OsmAnd .obf format, I could utilize my custom renderer and generate images representing two different years.

Here’s a preliminary outcome that meets my requirements for now. I’ll circle back to explore alternative options when I have more availability.