10. Map as PDF
Three switches write a print-ready map in A4 or A3, two more set the scale bar and the source lines:
| Switch | File | Content |
|---|---|---|
--pdf (or "with a PDF" to the assistant) | <name>.pdf | the map: exactly the objects of the OOM file, so no candidates |
--pdf-candidates | <name>-candidates.pdf | the check print: the map plus every candidate, true to position |
--training | <name>-training.omap, <name>-training.pdf | the training map: map and candidates, cleaned up for printing and running |
--pdf-scale-bar | draws the scale bar on the PDFs | |
--pdf-sources auto|full|credit-only | chooses the source lines on the PDFs (default auto) |
You can combine the switches; the files then sit side by side in the project folder. export and run take all five, the MCP server as pdf, pdf_candidates, training, pdf_scale_bar and pdf_sources. freemapper does not store the choice in the project: it applies to that call.
The check print of the Kreuzgymnasium. Quelle: GeoSN, dl-de/by-2-0, Daten geändert; © OpenStreetMap contributors.
The map PDF holds only what the OOM map holds: buildings, areas, water, the walkable area on sprint maps and the north lines, plus the title, the scale number, the contour interval, the data credits and the freemapper credit line. The scale bar is missing because German orienteering maps usually have none. If you want it, add --pdf-scale-bar; the number "Maßstab 1:4000" is always in the title block.
Source lines on the PDF. The sources with their licences sit under the title block. freemapper prints up to five lines as they are (--pdf-sources auto, the default). A longer list, for example nine lines in Berlin, is shortened step by step: dl-de/zero-2-0 sources of one provider become one line, long names get short forms ("K5" for "Karte 1:5000 von Berlin (K5)"), lines are joined with " · ", and last the block points to "Vollständige Quellen: ATTRIBUTION.txt im Projektordner". The lines for OpenStreetMap, for every other licence (dl-de/by-2-0, CC BY) and for freemapper stay word for word. --pdf-sources full never shortens, --pdf-sources credit-only prints only the freemapper line. Legally, ODbL and dl-de/by-2-0 require naming the source when you pass the map on. With credit-only you name it yourself; freemapper reminds you. The freemapper line with the project address is in every mode and cannot be switched off. ATTRIBUTION.txt in the project folder and the OOM and OCAD maps always list every source.
The colours are CMYK values after the IOF Printing and Colour Definitions Rev. 4 (valid from 1 December 2024), the same as in the OOM and OCAD files. If your printer prints brown or green clearly differently, compare with the IOF Print Test Sheet and adjust the colours.
The check print
On the check print every candidate becomes a map object, also the uncertain ones. Only points inside an out-of-bounds candidate, unreachable passages and the cliffs the generalization took away are left out (chapters 7 and 9). Every object lies where its source has it, even where symbols cover each other. Take it into the terrain to check the map and the candidates. Up to version 0.21.0 it was called the training map.
Note on the change: up to version 0.8.0,
--pdf-candidates --pdf-scale-bar.
The training map
The training map is a map of its own next to the base map (<name>.omap). You print it and run on it as it is. For that freemapper takes the objects of the map and every visible candidate together and cleans them up so that no symbol lies on another and the gaps of the norm are kept. The base map stays as it is: with the candidates it is the material for mapping, true to position and complete.
freemapper run kreuzgymnasium --training
freemapper export kreuzgymnasium --training --ocad
This writes <name>-training.omap and <name>-training.pdf, with --ocad also ocad/<name>-training.ocd. The OOM file links the same raster templates as the map, but no candidates. On the area page the option is called "Training map", for the AI assistant training. Scale bar and source lines work as for the other PDFs.
An existing training map stays, so that a run does not overwrite one that was printed or passed on. run --training then says "Kept the training map …, so that a run does not overwrite one that was printed or passed on; delete it or pass --force to renew it" and goes on; export --training stops with a message. To renew it, delete it or pass --force. --force writes it again and replaces the base map too; the old files stay as .omap.bak.
What the training map does differently from the map, step by step:
- Lines that meet end to end become one line: ways, stairs, railways, watercourses, banks, fences, walls and contours. The dash pattern then runs through.
- Street furniture (531, such as lamps, waste baskets and bicycle stands) on streets and squares goes; in a park it stays.
- Open land of a park is yellow only where the nDSM shows no trees; the rest stays white forest. freemapper reads the tree cover
data/tree-cover.tiffor this, whichderivewrites: everything from 3 m up, mostly trees, but also pavilions. Without an nDSM the park stays as it is. - Inside olive green areas (520) only buildings, canopies, water, railways and contours stay. A way, a stair too, stays in full when it leads through: when it reaches the edge at two places that no wall and no fence bars. Of every other way a beginning of 1 mm stays at each open place, so that a runner is not surprised by a path branching off. Where a fence or wall stands there, the map shows only that. A passage stays only where a way that stays runs through it. What lies on the edge, such as the fence round the garden or the road beside it, stays.
- A point symbol (a tree, a monument, a fountain and the like) that comes too close to a way, a building, water, a fence or another point moves to the nearest free spot, at most 1.5 mm on paper (6 m at 1:4000, 15 m at 1:10 000), but never into olive green. Of two points the smaller moves. It then carries
freemapper:moved. If it finds no spot, it stays where it is and goes in step 6 if it is too close to another symbol there. Trees on streets and squares stay where they are. - Where two symbols cover each other or come closer than the norm's gap (0.15 mm between two lines, enlarged like the symbols), the one with the lower rank gives way. The rank falls from buildings through water, railways, roads, paths, watercourses and stairs, fences, walls and cliffs, banks and contours down to the points. The stretch is cut out, crossings stay. If more than half of an object is in conflict, it goes whole; a stretch close to two symbols counts once. Walls and impassable fences are only cut, never left out whole, because a runner meets them in the terrain. Contours run through buildings and ways and give way only to banks and cliffs. A fence or wall along a stair stays: the norm draws it with the stair.
- What is below the norm's minimum size goes: short pieces of line, stairs under three steps (1 mm) and small areas of open land, forest and green. A short piece that ends on a line of its kind that stays, stays too; for ways, stairs and railways every way counts, so a path cut into pieces by steps stays when one end meets a longer way. Two short pieces do not keep each other. A stair too short to draw between two ways is drawn as the way (it carries
freemapper:generalized); one at a dead end goes.
On forest and sprint maps the training map also generalizes the cliffs more than the map (chapter 7).
Carriageways, tracks and paths running side by side still stand side by side in this version, and the kerb lines stay. Merging them onto a middle line, shifting lines and a colour of its own for the carriageway come later. If objects still keep too little gap after all steps, a warning gives the length in mm; look at those places in OOM.
Do not map on the training map. freemapper builds it from the downloaded data and the content settings, not from the .omap files, so corrections you make in OpenOrienteering Mapper never reach it. What it moves or leaves out is in the base map and the candidates, true to position. To write only the training map again, delete <name>-training.omap (with --ocad also ocad/<name>-training.ocd) and call run --training without --force; the PDF is written again with it. --force replaces the base map as well. The uncertain objects of the training map come from the candidates; check the course in the terrain before an event, best with the check print.