NIMBY Rails · published · build 24511435
The default, bundled OpenStreetMap data has been updated to a newer planet database. It also includes a huge amount of data that was removed in previous versions. Building footprints are now visible at the highest zoom if they are mapped in OpenStreetMap. It also includes nearly all POIs defined in OpenStreetMap as map labels in the highest zoom. Due to the newer version of the data, and these new, additional data layers, the bundled map size is now a bit over twice the size of the previous version, requiring 55GB of storage.
The format used for OpenStreetMap tile data is now based on industry standards rather than a proprietary undocumented format. This means that motivated players can produce their own maps using open source tools and replace the bundled vector map data with them if desired.
To comply with the way the OpenStreetMap ecosystem handles vector tile processing, the default game map now uses a tile schema named OpenMapTiles. Tile schemas in the OSM world translate OSM tag names and values into a different set of names and values which is simplified and more compact to optimize the required space. Unfortunately these tag names and values most of the time do not match the underlying OSM tags, and therefore a new map mod stylesheet is needed.
Map Style mods will now show up under Map Options / Sources / Default Vectors, Style tab. This is because the game now supports multiple vector layers, and each one can be individually styled, so styles are now a property of a given map layer, not a global option. The default game stylesheet is already updated for OpenMapTiles, but the Map Style mods in the workshop will need to be updated to these new tags. They will show anyway in the Style tab, but they won't work until they are updated.
The map rendering engine has been partly rewritten to address some issues and add new features. Gone is the old "polar warping" idea. The original map renderer and all its revisions tried to always fill the screen with map, even if that implied warping map coordinates in a way that did not really match any geographical coordinate system. This was okay at high zoom, but at low zoom it had visible warping near the poles. The new renderer handles projection like any other Web Mercator renderer does, and it will just crop and background fill the map when the view rectangle is out of range.
The fix for the rendering coordinates system was not just for cosmetics, it was also required to make the map renderer fully compatible with Web Mercator. And this is important because the system now allows to load third party map sources, as will be described later.
The map renderer coordinate transform code has been fully rewritten in 1.19, so I seized the opportunity to introduce map rotation:
You can rotate the map using the horizontal scroll wheel on your mouse, or using the vertical wheel combined while pressing shift. Cancel the rotation with a middle click or by clicking the button that will appear in the UI top bar.
The propietary formats used for map storage are gone in 1.19. Instead the map system is capable of loading industry standard vector, raster and container formats, which can be produced with open source tools.
Raster formats: PNG, JPG, WebP
Vector formats: Maplibre Vector Tiles, Mapbox Vector Tiles
Container formats: PMTiles, HTTP TileJSON, HTTP directory patterns
The combination of these new features in the backend of the map system enables a new feature in the frontend: it is now possible to load external map sources, including HTTP sources for online maps.
To create custom HTTP tile map sources, click the "Map options" button in the top right toolbar, and select the Sources tab. Then click the "New source" button. In the URL input box input the source URL. It needs to be a TileJSON file (preferred, since it enables more efficient loading of tiles) or a URL pattern with the de-facto {z}, {x} and {y} escape codes used in the OSM ecosystem. Check the wiki for a few starter layers:
https://wiki.nimbyrails.com/Raster_and_vector_tile_layers
Please keep in mind you are using other people bandwidth. If you find yourself a heavy user of a free map source, consider donating to them, or buying a commercial subscription to a GIS data service.
As always, keep in mind the map is a background layer, not a playable layer, and you need to build your own tracks. And this is still the case in 1.19 with custom map sources.
A native Linux build, which targets the newest Steam Runtime v4, is now also included. It links with the SteamRT SDL3 library for maximum compatibility. It is Vulkan-only, and Wayland/X11 agnostic, leaving the decision to use either to the SteamRT SDL3 library. Saves are cross platform and Steam Cloud Saves are automatically shared between Windows and Linux. If you are a Linux user you might need to force disable Proton for the game if you made any changes to the Steam Library properties of the game in the past.