What is dk.trackmap.net?
This is a collection of schematic track maps for railways in Denmark.
I aim at having up-to-date maps that show every functional
prototype-size track and turnout in the country. Thanks to the
support from a growing number of contributors,
I am now less far from reaching that goal than I have been.
There is no money involved in dk.trackmap.net (except that I pay
an ISP out of my own pocket for a DSL line for the server). I am not
affiliated with any railway or organization in the railway trade.
I hope that you will enjoy the maps and find them interesting.
Feel free to email
me with general praise or comments about the collection.
However, if you want to know how you get from point A to point
B by train, there are easier ways to find out than emailing me.
Since you're reading this on the web, you can look up your
journey on Hafas just as
easily as I can. People who nevertheless mail me "please tell
me when the train goes from from Copenhagen to Odense" type questions
may receive either harsh language or actual help in return, depending
on my mood and the general level of stupidity exhibited.
My main priority is to show the logical track layout in a hopefully
clear fashion. I tend to put less weight on showing which leg of a
turnout is the »straight« one, though I often try to preserve such
features within the constraints set by space and clarity. In order to aviod
very long maps I've chosen a uniform turnout angle of 45 degrees and
generally made the »scale« in the tracks' direction much smaller than the
»scale« across, especially in areas without switches. This has the
disadvantage that some of the wider yard areas get to look rather bulky, but
you can't have everything in this world...
From time to time, people suggest that I add more information to the
maps, such as line distances, track numbers, interlocking types,
signal placements etc.
I try to be careful about adding new features which may confuse the
maps further, but the jury is still out on most of the questions.
You can influence the decision by mailing me your thoughts.
What was that place called, again?
I try to be consistent about using Danish or English versions of
geographical names, but I find that every other week I'm consistent in
a different way. Here is how it (doesn't) fits together:
||The capital. Seat of government, winter hive of the Queen,
home of your friendly track map collection editor.|
||City north of Copenhagen, which, contrary to what Shakespeare
says, was never the capital.|
||The island where most of Copenhagen lies. I'm not sure whether
"Zealand" is a correct form in English. Complain if you
see it used on my pages.|
|Nordsjælland ||Northeastern Sjælland
||The peninsula to the west which
borders on Germany.|
|Nordjylland ||North Jutland|
|Sydjylland ||South Jutland|
|Østjylland ||East Jutland|
|Vestjylland ||West Jutland|
||The larger of the islands between Jylland and Sjælland.|
|Storebælt ||Great Belt
||The sea between Sjælland and Fyn|
How the maps are made
The raw track map data come from a variety of sources. For some
stations I am in possession of copies of internal maps liberated
by certain railway employees who do not wish to be mentioned here.
In one case, a railway has officially contributed a track schematic
for use in the collection.
Most commonly, though, the maps are composed form direct
observation. I go out to the railways with a sketchpad and a pair of
binoculars, and scribble down the track layout while riding the line a
couple of times. At the larger stations I disembark and inspect by
foot from platforms and (hopefully) public bridges over the track
areas. Occasionally some complex part of the layout goes over the
streets instead of under them; in that case it might be necessary to
ride the trains many times before I have a reliable approximation of
Very recently I have dragged myself kicking and screaming into the
21st century and bought a digital camera. Taking pictures is faster
than doing sketches in the field. On the other hand, the paper-based
approach still seems to work best for from-the-train observations,
where sidings go past faster than I can aim the camera at them. I am
experimenting with having the camera record video out of the train
window, but that requires knowing in advance that interesting trackage
will come past.
Many of the data for Jutland have been collected by local
contributors who sent me sketches by
email or ground mail. I suppose they do their sketching in
essentially the same way as I do.
Once I acquire track map data, I spend quite some time drawing the
layout into pixels, normalizing it to my lay-out conventions. In
this phase I work pixel-by-pixel on the small-scale maps that
are shown directly in the HTML pages. Before the great 2002-2006
hiatus I mostly did the editing in old Windows-based paint programs
that could only handle 16 colors at a time; some of the uglier
stylistic choices on the maps date back to the need to express
everything in a fixed 16-color palette.
In recent times, however, I do the editing in the Gimp on Linux, and the master
sources for all the map are now saved in the Gimp's native XCF format.
After the switch to the Gimp I am gradually exploring the freedom of
using more than 16 colors to give the maps a more modern graphical
A typical "master map" has several layers:
- A white background layer
- A layer with the actual track map
- A separate layer for the title box (which often needs to move
around when I re-layout the map).
- Hidden layers for saving older variants of parts of the map that
may still be handy for future re-layoutings.
- A hidden layer with markings that define the hotspots for links
to the real-time timetable at bane.dk.
- A hidden layer with track numbers that get applied to the
large-size variant of the map.
During the editing I make use of a home-made perl script that
renders station names and other text in my house-style bi-color font.
After the editing is done, a collection of various other home-made
programs convert the XCF to what you actually see on the web:
- To get information out of the XCF file and into a format that
other software can work with, I use xcftools. I had to
write this myself, there being no other programs that could
reliably extract data from an indexed XCF file. It is the only
one of my post-production tools that has been wrapped up nicely
in a package that should be useful for others.
- A perl script recognizes the blue-framed boxes that are used to
reference neighbouring maps, and converts them to clickable links
in the HTML. If the master map has an appropriately-named hidden
layer, the same script extracts links to the on-line timetable
for the stations on the map.
- The small map is enlarged 500% to a smooth map for printing
by a somewhat chaotic subsystem of various programs that work
by graphical pattern-matching. For each pixel in the original
image, it and its neighbors up to 3 pixels away is compared to see
whether this combination has been seen and expanded before; if
so the 5×5 expansion of it is copied to the new image. There are
a suite of ad-hoc optimizations that help recognize the same
situation in different orientations or with different colors (for
pairs of colors that have similar roles on the maps). For
combinations that have not been seen before, each pixel is simply
enlarged 5 times; I then edit it to be nice and smooth by
The programs that support this started out as Perl scripts
(connected by a rather hackish Makefile), but most have since been
rewritten in C for speed.
- The 500% enlarged bitmaps are converted to Encapsulated Postscript
files by a different set of handwiritten Perl scripts (I add
special markup pixels in the 500% version to help vectorizing
them), and those are further converted to PDF files by ps2pdf
which is part of Ghostscript.
- Track numbers, where present, are enlarged from a hidden layer in
the XCF by the same mechanism. A separate program masks the track
numbers into the large version of the raw map.
- Finally the various image files and the imagemap data for hotspots
are automatically copied to my web server.
Other contents on dk.trackmap.net
There is a few items here that do not have to do with track maps
as such. They ended up here for lack of a better place to put them:
- A brief guide to Danish signalling.
This was part of my earlier site "The Railfan's Guide to
Copenhagen". I stopped maintaining it several years ago
because I thought others were doing a better job. But apparently there are
readers who do'nt share that opinion, so I keep it around
- A list of Danish station name
abbreviations. Its primary job is to be pointed at when
someone (which may be me) on the local Usenet railway group
begins to show off using abbreviations instead of the stations'
perfectly good full names and some poor newbie doesn't know them.
This page was last updated: November 16, 2008.