Map-Engraver
Map-Engraver is a python library I’m working on for programatically rendering maps.
The primary goal of the project is to develop tools to create maps that looks like antique maps from the 18th/19th century. Eventually I’d like to print one out on a massive printer!
An example of what I mean can be seen below. Switch between “Map-Engraver” and “Antique Map” to compare the two styles.
Where is the code?
The source code for the project can be viewed on GitHub.
What is the current state of the project?
Because the project is quite ambitious, I’ve been splitting up the development of the project by using the library for creating other posts that I’ve written for this site. Each of those posts helps move forward a tiny bit with this project without me getting bogged down working on one massive project.
While I’ve not yet accomplished my goal of implementing antique map styles, I have used Map-Engraver to generate the illustrations for:
The source code for these maps can be found on GitHub at:
I’ve also used Map-Engraver for very minor use cases, such as rendering coastline maps for the LEGO-Art-Map-Generator and proj-vis.
Why not use QGIS?
That’s a very good question that I ask myself constantly! My experience with QGIS is that it’s useful for quickly creating maps, and allows a bit of fine-tuning and customisation. This does not work for my use case because:
- I would like my map to be version controlled, which QGIS doesn’t do well.
- I would like to have full control over the logic flow, easily handle edge cases in a programatic way.
- I want to use features that QGIS just does not support easily, such as complex buffer techniques, noise algorithms, and vector manipulation.
That said, the stuff that people have been able to create with QGIS is very impressive. For instance, FerrarGIS by Manuel Claeys Bouuaert (Example Map). It looks damn beautiful, almost demotivating for me. I still feel like I have something to contribute with my project, such as street labelling, vector graphics, and slope hatching techniques, but it will be a while until I reach that point.