BitmapMaps doc

Make printable maps with BitmapMaps

  1. Overview
  2. End-result example
  3. Country-wide free elevation data
  4. Fetching geographical names
  5. Before you begin...
    1. Install some open source software
    2. Add BitmapMaps.jl

Overview

A couple of years ago, Kartverket published elevation data with a 1x1 metre grid for all of Norway. I had a quick go at making maps with the features I like.

To prepare a map took many work operations, all of which I wrote as functions in Julia. Those functions called others, from Images, GeoArrays and others. The printed regional maps were quite nice, so I spent some time making an automated pipeline. That pipeline is BitmapMaps. Into one end, you put freely available elevation data. At the other end, you print or view image files. In between is a 14 step process, where you could choose to make manual changes and make the pipeline take it from there.

These pages describe how you can map the regions you enjoy, using BitmapMaps and other free tools. I'll also point to some sources for free elevation data in other countries. We will be suggesting and showing some tweaks, too.

End-result example

Let's have a look at an end result from the pipeline. It is made for printing to A4 sheets, but should look decent on screen, too. After you zoomed (pinch or roll wheel) in to an interesting sheet, click on it to load the detailed version. Prepare to wait 15 s or so for the print-resolution sheet. Here you can view the map in full-screen.

Compare with the online-first OpenStreetMap below. It looks much better in a non-embedded context.

Country-wide free elevation data

BitmapMaps.jl relies on 1x1 m resolution data, even if you choose to print in a lower resolution. For example, the map linked above only displays every 2x2 m cell. Even so, it uses the bumpiness of 1x1 m elevation for identifying terrain features such as forest, lakes, couloirs and ridges. Most importantly, it finds and fixes areas with errors. The typical errors in the data are recognized by their artificial bumpiness.

All of these sources also use the CC BY 4.0 license. That means you can sell the maps you make, too.

CountryWhatSource
NorwayFull 1 m+ coverage, DEM and DTMHøydedata
New ZealandComprehensive national 1 m LiDAR DEMLINZ Data Service
NetherlandsEven higher resolution (0.25–0.5 m)PDOK AHN Viewer
DenmarkFull LiDAR-based coverageKortforsyningen
Czechia0.5 m DTM nationwideCUZK

Note that we have only made printable maps with the Norwegian DEM data so far. You'll find limited coverage of Switzerland, Germany, USA and Italy as well.

Fetching geographical names

BitmapMaps uses a 'Kartverket' API. You can overrule online calls by editing a text file.

Before you begin...

Install some open source software

BitmapMaps is written in Julia, and is started from within it. It's normally best to start Julia from a terminal or command line. You will get some extra graphical feedback if you run Julia from within VSCode.

The bitmap / photo editor Gimp is useful for inspecting and modifying GeoTIFF and .png bitmap files. BitmapMaps can help editing GeoTIFF files efficiently by calling Gimp.

For direct editing of .svg files in general, we suggest Inkscape. You should know that Inkscape does not load the corresponding style sheet '.css' files, where text size is defined. So it's better to inspect .svg files by opening them using any browser. The .svg files are also editable in text editors.

Add BitmapMaps.jl

If you plan to follow this walkthrough, create a folder under your home directory: '~/BitmapMaps/Stetind/'.

We're assuming you use terminal here. These commands will create a Julia environment in that folder and add BitmapMaps to its 'Project.toml' file.

PS C:\Users\f\BitmapMaps> julia --project=. -q

julia> using Pkg; Pkg.activate(".");

julia> Pkg.Registry.add(RegistrySpec(url = "https://github.com/hustf/M8.git")); 

julia> Pkg.add("BitmapMaps");

julia> using BitmapMaps

If you want to understand Julia package environments, read JKrumbiegel!

On the next page, we'll collect elevation data and define map extents.

Next page

CC BY-SA 4.0 hustf. Last modified: April 18, 2025. Website built with Franklin.jl and the Julia programming language.