Privacy & cookies
Last updated: 7 October 2026
Trainmap is operated by Arinbjörn Kolbeinsson. For privacy questions or requests, email [email protected].
Your choice
The map works whether you accept or reject analytics. Optional Google Analytics is blocked until you select Go ahead. Selecting No thanks keeps it off. Neither scrolling nor continuing to use the site counts as consent.
Use the Cookie settings button on every page to change your choice. Rejecting after acceptance stops further analytics, removes accessible Google Analytics cookies, and reloads the page to unload the analytics software. Withdrawal does not undo processing that occurred with your earlier consent.
What is stored in your browser
| Storage | Purpose | Duration |
|---|---|---|
trainmap-consent-v1 (local storage) | Your analytics choice, notice version and choice date. Used only to respect that choice. | 180 days; then we ask again. |
trainmap-internal (local storage) | Set only if you open a page with ?internal=1, which we use on our own devices: it turns analytics off on that device, whatever the choice above, so our own testing isn’t counted. | Until you clear site storage or open a page with ?internal=0. |
_ga, _ga_* cookies | Google Analytics visit/session measurement, only after consent. | Up to 180 days, with automatic cookie renewal disabled. |
trainmap-place-names (local storage) | Whether place names show as written locally or in English. | Until you clear site storage. |
trainmap-maps-v1 (local storage) | Your last five maps (title, stations, map style and, if you made one, its poster's layout, size, frame and words), so you can continue them. Kept on your device only; never sent to us. Forget one with the × next to it. | Until you forget it or clear site storage. |
trainmap-poster-v1 (local storage) | The layout, size and frame you last chose for a poster, so a new one starts from them, and, once you have reserved a poster, your email address, so the next one is a single tap. Kept on your device only. | Until you clear site storage. |
trainmap-labs (local storage) | Remembers whether you enabled experimental map features. | Until you clear site storage. |
Necessary preference storage is used to provide the choices you request. If browser storage is unavailable, your analytics choice applies only to the current page.
Optional analytics
With consent, Google Analytics (Google Ireland Limited and its service providers) processes page visits and events for starting, successfully drawing, failing to draw or editing a route, choosing a map style, opening a shared or saved map, clicking Share, completing a native share or copying a link, using the poster editor (opening it, choosing its style, viewing it in a room, reserving a poster), and offering or sending a route report. Some of these events carry the name of the map style in use, one of our nine styles such as “Atlas”; no other detail is attached. It also processes browser/device and session information and the referring website’s origin (without its path or query). Network requests expose your IP address to Google; GA4 states that it does not log or store individual IP addresses.
We use this information to understand site use and improve the map. The legal basis for optional analytics is consent. Our events do not include station names, coordinates, personal map titles, or URL query strings/fragments. Advertising storage, advertising personalisation and Google signals are disabled in our tag. We do not upload journey details or customer lists to Analytics.
Google may process data outside the EEA. See Google’s privacy policy and its international transfer safeguards. Our Analytics property retains event-level data for 2 months and user-level data for 14 months; the user retention period resets when a user returns. Aggregate reports may be retained longer. We keep aggregate reporting snapshots to compare the project’s performance over time.
Maps, searches and shared links
Cloudflare delivers this website, and our map tiles, map fonts, terrain and satellite imagery from tiles.trainmap.app, tiles-detail.trainmap.app, tiles-green.trainmap.app, terrain.trainmap.app, terrain3d.trainmap.app and sat.trainmap.app. Routes are worked out in your browser from our own rail data. Station searches may contact OpenStreetMap’s Nominatim service. These requests can disclose your IP address and the map area or station search needed to provide the feature. This traffic is separate from optional analytics and supports the map you request. See the About page for the data sources.
Your map’s title, itinerary and map style can be encoded in a shareable URL. Anyone you send that link to can view the map. We do not send that URL’s query string or fragment through our analytics events.
When you share a map, or a link to one is opened in a chat or social app, we draw a preview picture of it on our own server, cards.trainmap.app, which runs at Hetzner in Nuremberg, Germany. The server keeps that picture with the map’s title and the line of station names under it, so the next preview loads quickly. It does not keep who made or shared the map. To stop any one address from asking for too many pictures, the server holds the requesting IP address in memory for ten minutes and never writes it down. To have a stored picture removed, write to us with the link.
Poster reservations
Printed posters are not on sale yet. If you reserve a poster from the poster editor, we store your email address and each poster you reserve (its map style, framing, routes as drawn and words), the dates you first reserved and last updated, and the country Cloudflare reports for the request. There is no payment and no commitment, on either side. Each reserved poster has its own private link that reopens the design; the link shows the poster only, never your email address. We use all this only to email you once if prints go on sale. We don’t use them for a newsletter, don’t share them, and delete them after that one email, or when you ask. The list is kept in Cloudflare’s storage for this website. The legal basis is your consent; you can withdraw it at any time by writing to us, and we will delete your entry.
Route reports
If drawing a route seems to go wrong (you edit the same route twice, draw the same two stations again, or part of a route could not be found), the map may offer to send it to us so we can fix our rail data. Nothing is sent unless you choose Send. A report contains the stations of the route, the stations you first asked for, the line the map drew, the trains it followed, what you say is wrong (if you pick one) and any note you write. It contains no email address, IP address, location or other information about you, and we do not link it to analytics. Please don’t write personal details in the note. We use reports only to improve how routes are drawn, keep them in Cloudflare’s storage for this website, and delete each one after 12 months.
Your rights
Where applicable, you can request access, correction, erasure, restriction or portability of personal data, and object to processing based on legitimate interests. You can withdraw analytics consent at any time using Cookie settings and complain to your local data protection authority. Contact the operator using the link above; avoid sending a private itinerary unless it is needed for your request.