Hi,
some of you might use Nik4 by @Zverik to render map images of Mapnik map styles. At Geofabrik, we use it a lot. However, it is written in Python and uses Mapnik’s Python bindings.
The Python bindings do not have any releases and fail to build from time to time. In order to get rid of that unstable dependency, we at Geofabrik decided to port Nik4 to C++ because Mapnik is written in C++.
In the past, I contributed support for projections other than Web Mercator to Nik4. I had written some tests for Nik4 and re-used them for Nik5.
Nik5 aims to behave exactly as Nik4 in order to make migration easy for its users. However, the syntax of the command line options --bbox, --size-px and --size was changed from space to comma as separator. If you wrote --size-px 800 600 in the past, you now have to use --size-px 800,600.
Nik4 used ImageMagick’s montage utility to stitch tiles together if the requested map size exceeded the maximum image limits of Mapnik. I replaced it by the libgd. Tiles will be stored in memory now and not stored as temporary files on disk.
If you render large images beyond Mapnik’s limits, you might appreciate the new --tile-buffer option. It will render all tiles with a buffer to avoid labels being cut at tile boundariess.
The code is published on Codeberg. Please try it out.
Best regards
Michael