Conversation
Fixes #713 There is a bit of duplication, but this is needed because of the `default` icons. On station of Reading (http://localhost:8000/#view=19.6/51.4598362/-0.9749119&style=signals): <img width="394" height="429" alt="image" src="https://github.com/user-attachments/assets/4add97a7-075d-4519-a208-c8e6653203b6" />
Usable since Maplibre GL JS 5.15, see #722 and maplibre/maplibre-gl-js#6659. The same structure will be used for #600 to toggle layer visibility.
From https://wiki.openstreetmap.org/wiki/OpenRailwayMap/Tagging See https://en.wikipedia.org/wiki/ATACS, https://en.wikipedia.org/wiki/Automatic_train_stop, https://en.wikipedia.org/wiki/Korean_Train_Control_System. South Korea (http://localhost:8000/#view=7.85/36.168/128.101&style=signals): Some lines are combined ATS and ETCS actually, this will be shown once #549 is implemented. Before: <img width="1431" height="1115" alt="image" src="https://github.com/user-attachments/assets/8c1235c6-ecc7-41c6-b493-d6c6cd42f44e" /> After: <img width="1431" height="1115" alt="image" src="https://github.com/user-attachments/assets/34ac45b1-fee7-4b71-9ba3-5fde498b57b5" />
Part of #495 Related to #246 and #336. There are requests to be able to render abandoned and razed railways, together with the existing infrastructure. This pull request makes that possible, either by including the OpenHistoricalMap data in the main infrastructure layer, or by showing the abandoned and razed railways. For future railways, the same can be chosen: railways under construction or also those proposed. Changes: - Configuration screen for historical and future railways - Map style adapts to using OpenHistoricalMap or OpenStreetMap as historical data source - Map style hides abandoned lines / stations if disabled in the configuration - Map style hides construction or proposed lines / stations if disabled in the configuration - UI to allow viewing OpenHistoricalMap data together with OpenStreetMap data for all times. - Include note that it is discouraged to map dismantled railway features in OpenStreetMap, with link to documentation. Depends on maplibre/maplibre-gl-js#6495 to ensure source data is not loaded if the layer is disabled through global-state. --> This has been integrated ## Testing ### Configuration <img width="846" height="291" alt="image" src="https://github.com/user-attachments/assets/ab6a5a84-0ce1-430f-a1ad-1ac8a9e6f158" /> ### Future infrastructure (http://localhost:8000/#view=14.87/50.94355/10.99233) Enabled: <img width="1125" height="873" alt="image" src="https://github.com/user-attachments/assets/491b59c9-cfb9-4e57-809a-c2b8dcb26d13" /> Disabled: <img width="1125" height="873" alt="image" src="https://github.com/user-attachments/assets/ce061c9d-06da-4ae5-aa14-66d4d62f0bb4" /> ### Historical infrastructure (http://localhost:8000/#view=12/50.62073/12.34528) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/162910da-41b8-4b3b-9246-9a942e064fb5" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/78612948-296d-4510-b9af-0815df540727" /> (http://localhost:8000/#view=11.61/51.1841/12.3729) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/55a30b53-cf84-4176-ad04-128d670b8cce" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/2c4b6f2f-cde9-4fef-915d-179e83a1e4d0" /> (http://localhost:8000/#view=17.53/51.178254/12.389887) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/7662e555-6afb-4e20-b6ab-cf0cd576309b" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/e8cd8cad-2440-4091-a557-5e599c21638b" /> (http://localhost:8000/#view=12.93/54.96675/-1.58696&date=all) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/830a8a44-df47-4ecc-af36-093564a4c491" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/cc40a3a1-9b56-4751-8ab2-1f61aa807f7b" /> (year 1896) <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/8c16393f-8dac-4f99-b333-fa05cfb36566" />
Part of #272 Only import and display in popup. The visualization as a map layer with colors on the railway lines will come later. <img width="1430" height="867" alt="image" src="https://github.com/user-attachments/assets/77bb99dd-bce8-4513-8bc0-8b41a52ae1a7" />
<img width="1181" height="785" alt="image" src="https://github.com/user-attachments/assets/6261b05c-12ef-415c-9497-8c9844bbc2b0" /> <img width="1181" height="785" alt="image" src="https://github.com/user-attachments/assets/a8798b59-5f0c-428c-b053-18a2ae17fa33" />
Goal: allow generating the dynamic legend, to take account the user configuration for showing which entries to show. Needed for #731, which will contain legend entries for either the voltage / frequency, or maximum current. Changes: - Generate the legend in the UI, instead of during style generation. - Simplify legend generation: - Only generate for current map zoom - Only generate legend when the legend is shown - Encapsulate legend fully in the legend control, less global state in UI - Fixes legend for OpenHistoricalMap-powered historical railways - Makes legend show relevant entries like abandoned/razed railways when OpenStreetMap is used to show historical data, or when constructed or proposed rail/stations are enabled Additionally, this change improves the performance of the UI somewhat, because the legend and corresponding map, style and icons are not loaded when not needed. Legend for low zooms, present, historical, all time: <img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/ab8d4206-2306-44b2-abde-ccc524fc8306" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/2e5eb626-5fbb-4b39-af04-9798d447fc9d" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/4a1a849d-22d8-4761-abe4-095fb9b9b68f" /> Legend without and with construction and proposed railways enabled: <img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/b57a0643-68b5-4991-9e29-a372b583be38" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/b86ca6cb-74d8-45e8-a9b1-f25c0b636526" /> Legend without and with OpenStreetMap historical railway lines enabled: <img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/56a79594-2a08-48fc-adf7-25796d8e0f1d" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/bf981668-7765-4e24-84b8-34903ea73da3" />
…n layer (#731) Part of #272 Followup of #730 Pre-work for discussion #527. Changes: - Addition of tabs in the configuration modal to support configuration per map layer - Addition of configuration of the electrification layer to support both voltage/frequency and maximum current ~TODO: move some configuration to its own section in the configuration modal~ --> #738 ~TODO: make legend work~ --> #742 ## Testing ### Configuration <img width="292" height="285" alt="image" src="https://github.com/user-attachments/assets/53f7c760-0086-49c8-85f2-becb35396f75" /> <img width="1430" height="586" alt="image" src="https://github.com/user-attachments/assets/308d1812-808c-44dc-babb-2fbb18ff3286" /> ### Belgium (http://localhost:8000/#view=7.95/50.771/4.453&style=electrification) <img width="1432" height="1107" alt="image" src="https://github.com/user-attachments/assets/0d48819e-c7c4-4121-866f-418810fb5526" /> ### Germany (http://localhost:8000/#view=9/49.1888/8.9868&style=electrification) <img width="1430" height="1107" alt="image" src="https://github.com/user-attachments/assets/a381190b-a076-4bc4-8fc2-44e290d9affd" /> ### Italy (http://localhost:8000/#view=7.64/45.826/11.885&style=electrification) <img width="1430" height="1107" alt="image" src="https://github.com/user-attachments/assets/af025b96-7258-436a-94b7-40be2509f795" /> ### Legend <img width="1429" height="743" alt="image" src="https://github.com/user-attachments/assets/3f19b82b-a08a-40c5-b1c7-71b65da52419" /> <img width="1429" height="743" alt="image" src="https://github.com/user-attachments/assets/1f6efcb5-5395-4e02-9a98-9e60ea04708d" />
Built on #731. Move configuration of the infrastructure layer to the separate configuration section. <img width="1432" height="588" alt="image" src="https://github.com/user-attachments/assets/ed149c1c-1713-4479-baef-5f15de6568d5" />
Includes https://github.com/hiddewie/OpenRailwayMap-vector/pulls/731 Part of #272 Render the maximum delivered power of a railway line, if both voltage and maximum current are known. ~Dummy PR until the maximum current is done.~ ## Testing ### Configuration <img width="1431" height="338" alt="image" src="https://github.com/user-attachments/assets/3d318e5d-4b52-4b95-ba5f-115613d93f77" /> ### Belgium (http://localhost:8000/#view=7.71/50.725/4.074&style=electrification) <img width="1431" height="827" alt="image" src="https://github.com/user-attachments/assets/3ab41710-a1dd-4f58-9398-f9b704831c4a" /> ### Germany (http://localhost:8000/#view=8.51/49.1678/8.8557&style=electrification) <img width="1431" height="827" alt="image" src="https://github.com/user-attachments/assets/dc1bf496-707a-41cd-9177-7dd577b85e1f" /> ### Italy (http://localhost:8000/#view=7.72/46.154/12.237&style=electrification) <img width="1431" height="827" alt="image" src="https://github.com/user-attachments/assets/7c4cb2fb-47d0-44ec-aa2d-c60a5cf96141" />
<img width="1435" height="57" alt="image" src="https://github.com/user-attachments/assets/c05481b5-2e8e-4412-a61e-40ca5b05d664" />
Same as #706, now for the operator layer. (http://localhost:8000/#view=16.06/45.447618/10.949145&style=operator) Before: <img width="705" height="702" alt="image" src="https://github.com/user-attachments/assets/de2cdfa0-9798-4ed6-a1fd-cfdd7595f7f8" /> After: <img width="705" height="702" alt="image" src="https://github.com/user-attachments/assets/d27b9e5b-cc94-420d-8ae1-a6cf391cf57a" />
Similar to bridges: only render them based on the zoom level and a minimum length. (http://localhost:8000/#view=9.27/44.4522/9.039&style=electrification) Before: <img width="944" height="540" alt="image" src="https://github.com/user-attachments/assets/fd2465ce-5183-4ebc-aa96-00225d4d007b" /> After: <img width="944" height="540" alt="image" src="https://github.com/user-attachments/assets/c0ff4daf-2e0b-431d-8e7f-c3a23e963f27" />
) Goal: reduce the amount of styles visible by default, to allow for new styles like routes (#413) and diagnostics (#648). The gauge, loading gauge and track class styles all have to do with the track, space around the track and their size/weight bearing properties. The three styles are merged into a single **Track** style, with configuration to render the railway lines using the gauge, loading gauge or track class colors. The legend updates automatically. Existing links to the the `gauge`, `loading_gauge` and `track_class` styles as hash parameters are automatically updated to change the configuration and show the new track style. Configuration: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/dd21d2f4-d8ad-4d7e-9f9c-6c4e2cb7ae79" /> Gauge: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/21805e1d-c06e-4e28-9d76-cb05beb7357c" /> Loading gauge: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/9febefcf-5d95-444d-9552-8946f1e50aed" /> Track class: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/90f23817-23d2-4cf2-a34c-035b4fd48ccb" />
Fixes #732 Render historical railway landuse. Example Tegola UI link: https://vtiles.openhistoricalmap.org/#16/52.330959/4.966813 Layer: `landuse_areas` Class: `landuse` Type: `railway` (http://localhost:8000/#view=14.65/52.33033/4.96296&date=all): <img width="1399" height="793" alt="image" src="https://github.com/user-attachments/assets/b0bfd800-09ad-4ae8-9811-ee4d25b2497e" /> (http://localhost:8000/#view=14.65/52.33033/4.96296&date=1978): <img width="1434" height="679" alt="image" src="https://github.com/user-attachments/assets/1468ebc8-ec39-42f5-bf51-fe0775a37646" />
Added [badges](https://github.com/badges/shields). Maintainers feel free to modify or discard changes. [See changes visually](https://github.com/danieldegroot2/OpenRailwayMap-vector/tree/readme-badges?tab=readme-ov-file#openrailwaymap-vector-map-styles) (Scroll up slightly. You might have to (Ctrl+)(Shift+)F5 clear cache to see valid BMC supporters count.) --- I am aware this repository is [possibly being integrated](OpenRailwayMap#132) into the OpenRailwayMap-CartoCSS repository. Check with the maintainers which content should be kept from each repository / how ie. funding might be handled. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Noticed during #734 (comment) For tall icons for the bottom icon of a signal feature, the reference is always offset using the same fixed offset. This will overlap the reference text with the icon. Instead, output the icon offset such that the text label for the reference can be offset by the same value (plus some padding). (http://localhost:8000/#view=18.41/49.010647/8.384991/-19.5&style=signals): <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/c2288181-d5f6-4327-ab5d-0ac441065624" /> (http://localhost:8000/#view=18.08/49.00242/8.394911/-19.5&style=signals) <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/8ab6c7b6-c929-4611-9b9d-beadda7b015b" /> (http://localhost:8000/#view=19/48.9970422/8.4158721/-19.5&style=signals) <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/283ae76b-cfd9-44cc-8129-b91b11545251" />
AKN <img width="361" height="822" alt="image" src="https://github.com/user-attachments/assets/e7a6a3ff-d728-4a5d-b6d0-3228565b315f" /> Deutsche Regionaleisenbahn <img width="1045" height="382" alt="image" src="https://github.com/user-attachments/assets/27d2b859-a6e9-4c4a-8352-299a5a652a73" /> Thüringer Eisenbahn GmbH and Deutsche Regionaleisenbahn <img width="567" height="395" alt="image" src="https://github.com/user-attachments/assets/40323e54-e392-41ab-a14b-5691b1506567" /> Schieneninfrastruktur Ost-Niedersachsen GmbH <img width="703" height="811" alt="image" src="https://github.com/user-attachments/assets/218f9496-b8a5-4688-a214-f0e4a197354b" />
Adds GB stop & fixed distant boards. Distant signals kept together. Stop board placed to allow for a position light (shunt) signal, but below an LC indicator. Only thing of note is that the order would be slightly at issue with ETCS block markers, however I will create an issue and then PR shortly after this is merged, as there are also other order issues to work on.
For stacked signal icons, with multiple icons that have an icon with a position defined, only the first position was removed on the catalog lookup. Found during testing of #734 (comment) (http://localhost:8000/#view=17.65/49.00464/8.411248/-19.5&style=signals): <img width="847" height="596" alt="image" src="https://github.com/user-attachments/assets/8a0731fe-6a35-402f-8e44-83b417428464" />
… lines (#748) Part of #413 Integrate railway routes for stations, platforms, stop positions and railway lines in the popup UI and on the map when clicked. Changes: - [x] Import route details - [x] Add routes in popup for lines - [x] Add routes in popup for platforms - [x] Add routes in popup for stop positions - [x] Add routes in popup for stations - [x] Add display of route on map when clicking route - [x] Add display of route information when clicking route See: - https://wiki.openstreetmap.org/wiki/Relation:route - https://wiki.openstreetmap.org/wiki/Tag:route=train?uselang=en
Fixes #749 The wrong tag for opposite regime signals was used. Related to #541, which fixed this for main signals. Also, add the yellow distant signal marker board Before: <img width="524" height="556" alt="image" src="https://github.com/user-attachments/assets/f794962a-e0aa-47d6-8540-d58059a7ff79" /> After: <img width="433" height="501" alt="image" src="https://github.com/user-attachments/assets/d6d898c1-69ce-4ba5-8dd7-66fdcd811e9b" />
After managing to go through the Podman pain, finally a new MR... <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/0b03a1fa-4340-4eed-9c7b-8d220d6c885a" /> <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/935e9cf6-1e94-4ab0-9509-2a5b674437b4" /> <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/b3572a1c-a153-45e5-a753-50073a1a627f" /> Downside is that F0 only, or signals without states, look weird, so suggestions would be nice: <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/dcd20f24-4bd3-40c2-bc99-7cfad4353513" /> Ref can look weird too on long signals: <img width="485" height="361" alt="image" src="https://github.com/user-attachments/assets/1c43e9d8-1012-484c-b44e-fad8c7cca9f6" />
Followup on #748 Part of #413 Currently the API calls to display routes on the map are very slow, and sometimes time out. ## API Route 18173306, https://www.openstreetmap.org/relation/18173306. Example query ```sql explain analyze SELECT jsonb_build_object( 'type', 'Feature', 'id', osm_id, 'geometry', ST_AsGeoJSON(ST_Transform(way, 4326))::jsonb, 'properties', to_jsonb(row) - 'way' ) as data FROM (SELECT r.osm_id as osm_id, ST_LineMerge(st_collect(l.way)) as way, any_value(r.type) as type, any_value(r.name) as name, any_value(r.ref) as ref, any_value(r.from) as "from", any_value(r.to) as "to", any_value(r.operator) as operator, any_value(r.brand) as brand, any_value(r.color) as color from routes r join route_line rl on rl.route_id = r.osm_id join railway_line l on rl.line_id = l.osm_id where r.osm_id = 18173306 group by r.osm_id) row; ``` Before: ``` +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |QUERY PLAN | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |Subquery Scan on "row" (cost=2484.03..211196.87 rows=1 width=32) (actual time=493.106..530.542 rows=1.00 loops=1) | | Buffers: shared hit=117464 read=55500 | | -> GroupAggregate (cost=2484.03..211183.72 rows=1 width=268) (actual time=490.630..527.912 rows=1.00 loops=1) | | Buffers: shared hit=117461 read=55500 | | -> Gather (cost=2484.03..211111.43 rows=408 width=336) (actual time=488.180..526.951 rows=73.00 loops=1) | | Workers Planned: 2 | | Workers Launched: 2 | | Buffers: shared hit=117461 read=55500 | | -> Parallel Hash Join (cost=1484.03..210070.63 rows=170 width=336) (actual time=351.275..441.764 rows=24.33 loops=3) | | Hash Cond: (l.osm_id = rl.line_id) | | Buffers: shared hit=117461 read=55500 | | -> Parallel Seq Scan on railway_line l (cost=0.00..188076.38 rows=1640738 width=199) (actual time=0.198..193.818 rows=1312590.00 loops=3) | | Buffers: shared hit=116169 read=55500 | | -> Parallel Hash (cost=1481.94..1481.94 rows=167 width=153) (actual time=14.694..14.697 rows=24.33 loops=3) | | Buckets: 1024 Batches: 1 Memory Usage: 40kB | | Buffers: shared hit=1292 | | -> Nested Loop (cost=0.43..1481.94 rows=167 width=153) (actual time=43.639..43.921 rows=73.00 loops=1) | | Buffers: shared hit=1292 | | -> Parallel Seq Scan on routes r (cost=0.00..1472.50 rows=1 width=145) (actual time=43.549..43.795 rows=1.00 loops=1) | | Filter: (osm_id = 18173306) | | Rows Removed by Filter: 25091 | | Buffers: shared hit=1288 | | -> Index Scan using route_line_route_id_idx on route_line rl (cost=0.43..6.60 rows=284 width=16) (actual time=0.055..0.074 rows=73.00 loops=1)| | Index Cond: (route_id = 18173306) | | Index Searches: 1 | | Buffers: shared hit=4 | |Planning: | | Buffers: shared hit=8 | |Planning Time: 0.649 ms | |JIT: | | Functions: 51 | | Options: Inlining false, Optimization false, Expressions true, Deforming true | | Timing: Generation 7.196 ms (Deform 3.479 ms), Inlining 0.000 ms, Optimization 3.535 ms, Emission 75.353 ms, Total 86.085 ms | |Execution Time: 533.884 ms | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ``` After: ``` +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |QUERY PLAN | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |Subquery Scan on "row" (cost=0.86..1882.96 rows=1 width=32) (actual time=6.435..6.554 rows=1.00 loops=1) | | Buffers: shared hit=1559 read=28 | | -> GroupAggregate (cost=0.86..1869.82 rows=1 width=268) (actual time=4.411..4.414 rows=1.00 loops=1) | | Buffers: shared hit=1556 read=28 | | -> Nested Loop (cost=0.86..1797.52 rows=408 width=336) (actual time=3.092..3.775 rows=73.00 loops=1) | | Buffers: shared hit=1556 read=28 | | -> Nested Loop (cost=0.43..1611.09 rows=284 width=153) (actual time=3.048..3.330 rows=73.00 loops=1) | | Buffers: shared hit=1292 | | -> Seq Scan on routes r (cost=0.00..1601.65 rows=1 width=145) (actual time=3.004..3.255 rows=1.00 loops=1) | | Filter: (osm_id = 18173306) | | Rows Removed by Filter: 25091 | | Buffers: shared hit=1288 | | -> Index Scan using route_line_route_id_idx on route_line rl (cost=0.43..6.60 rows=284 width=16) (actual time=0.039..0.054 rows=73.00 loops=1)| | Index Cond: (route_id = 18173306) | | Index Searches: 1 | | Buffers: shared hit=4 | | -> Index Scan using railway_line_osm_id_index on railway_line l (cost=0.43..0.65 rows=1 width=199) (actual time=0.005..0.005 rows=1.00 loops=73) | | Index Cond: (osm_id = rl.line_id) | | Index Searches: 73 | | Buffers: shared hit=264 read=28 | |Planning: | | Buffers: shared hit=30 read=6 | |Planning Time: 1.357 ms | |Execution Time: 6.716 ms | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ```
Problem: milestones and other positions are only rendered from zoom 10 onwards. Between zoom 10 and 13, only the zero-position markers are rendered. From zoom 13 onwards, every position is rendered. The source is queried from zoom 8 onwards, wasting bandwidth and performance on not-shown position markers. Before: <img width="1432" height="168" alt="image" src="https://github.com/user-attachments/assets/29931b09-3d1a-4a8a-ba05-65836582f39b" /> After: <img width="1432" height="168" alt="image" src="https://github.com/user-attachments/assets/c2285639-da31-42a4-b58e-91031cd05f4f" />
Closes #1035 Modify the yard size classification calculation: - Ensure only points are buffered with 50 meters, not polygons which already contain all the railway tracks they need to. This ensures railway lines which pass the yard are not included in the yard length calculation. - Adjust the yard calculation parameter from 4 to 6 to make yards be classified slightly smaller. - Adjust the yard track length calculation to use the correct geo reference system for calculations using meters instead of latitude measurement errors. ## Classification Some countries like US, Belgium and Poland have yard sizes tagged. Below is a comparison of the classification, per country. The `importance_before` and `station_size_before` is the old numeric and classified value of the yard size. The `importance` and `station_size` is the new numeric and classified value of the yard size, with this pull request. The `tagged_size` value in the tables below is the `railway:yard:size` tagged value. ### Belgium Comparison in Belgium: <details> | id | importance\_before | station\_size\_before | importance | station\_size | tagged\_size | | :--- | :--- | :--- | :--- | :--- | :--- | | way-1511566546-train | 55.923647274560565 | large | 24.649600994523258 | large | large | | way-1466053114-train | 51.42745062723331 | large | 22.58532500024853 | large | large | | node-12662645628-train | 40.4321677402639 | large | 21.638039570146688 | large | medium | | way-1511566545-train | 44.34686284721076 | large | 20.11046362550488 | normal | large | | way-1483131761-train | 36.774614888255435 | large | 18.770590473420604 | normal | large | | way-1487273188-train | 31.790569415182304 | large | 15.126590525486854 | normal | large | | way-97377639-train | 38.705987114753576 | large | 15.07074738596649 | normal | medium | | way-1524925541-train | 22.073404503730057 | large | 11.829120156750713 | normal | medium | | way-116020403-train | 29.55511708384298 | large | 11.766182028190011 | normal | medium | | way-1500849512-train | 23.050942865759072 | large | 11.170132510885617 | normal | medium | | way-1503605053-train | 24.096510774703734 | large | 10.664789442629354 | normal | medium | | way-1504129356-train | 24.059680494964827 | large | 10.095902466048413 | normal | medium | | way-1480399360-train | 20.92586137799755 | normal | 9.27086064066703 | normal | medium | | way-1535562131-train | 24.389757990553004 | large | 8.808782299815963 | small | small | | way-191914614-train | 24.509865201069914 | large | 8.581283264292718 | small | medium | | way-1500849513-train | 20.76915799197847 | normal | 8.35722265733914 | small | medium | | way-1087740578-train | 23.683837101546764 | large | 8.091648429828822 | small | small | | way-1509384155-train | 23.85659939812393 | large | 7.6623148541355635 | small | small | | way-1529042941-train | 19.251859223930463 | normal | 6.461249628235454 | small | small | | way-1529042946-train | 17.1794052160704 | normal | 5.757073297412311 | small | small | | way-116022011-train | 23.630345304989696 | large | 5.564571889869238 | small | small | | way-1524925542-train | 9.477516085076337 | normal | 5.40360268725622 | small | small | | way-1529042942-train | 9.697606981267246 | normal | 4.312689204263192 | small | small | </details> Discrepancies: https://www.openstreetmap.org/node/12662645628: medium (tagged) » large (calculated) https://www.openstreetmap.org/way/1511566545: large (tagged) » normal (calculated) https://www.openstreetmap.org/way/1483131761: large (tagged) » normal (calculated) https://www.openstreetmap.org/way/1487273188: large (tagged) » normal (calculated) https://www.openstreetmap.org/way/191914614: medium (tagged) » small (calculated) https://www.openstreetmap.org/way/1500849513: medium (tagged) » small (calculated) ### US Comparison in US north east: <details> | id | importance\_before | station\_size\_before | importance | station\_size | tagged\_size | | :--- | :--- | :--- | :--- | :--- | :--- | | node-7820904890-train | 145.415841410794 | large | 84.7326364696379 | large | very large | | node-1254693292-train | 142.2689644338279 | large | 81.6400008125173 | large | very large | | node-7823687859-train | 118.75688875389412 | large | 65.30942658747608 | large | large | | node-11090502645-train | 108.33176383343452 | large | 61.87598481756692 | large | very\_large | | node-11082054404-train | 95.23974851705604 | large | 54.5327875238973 | large | medium | | node-7811274280-train | 72.90866110900107 | large | 40.45888786056202 | large | medium | | node-11090502643-train | 72.22420415568544 | large | 39.94678976293917 | large | medium | | node-11133096881-train | 61.372209589479546 | large | 34.4997539605382 | large | medium | | node-7820403495-train | 67.80626133719723 | large | 31.193378861427664 | large | large | | node-7820960103-train | 59.79103405148769 | large | 30.671382677255398 | large | medium | | node-7823687861-train | 59.47230085416883 | large | 29.873303534249967 | large | medium | | node-11090502642-train | 51.359896456409935 | large | 28.669731413352903 | large | medium | | node-11123957265-train | 55.051262850373114 | large | 27.800472091556284 | large | small | | node-11124073792-train | 47.5485592780394 | large | 27.771798733824536 | large | medium | | node-11123840621-train | 48.60659051672071 | large | 26.119780359909708 | large | medium | | node-11090502641-train | 45.25685229946745 | large | 25.7893731297643 | large | medium | | node-11627389117-train | 45.09825079802383 | large | 25.014684990951793 | large | small | | node-11090502639-train | 47.17266288088384 | large | 20.98441925872859 | normal | large | | way-1509093838-train | 36.17854911441565 | large | 16.49333244083904 | normal | medium | | relation-21049061-train | 27.58550101447521 | large | 16.17780990607345 | normal | medium | | node-13731547612-train | 27.58550101447521 | large | 16.17780990607345 | normal | medium | | node-11133082227-train | 34.19557485014673 | large | 15.601134294708151 | normal | small | | node-11090502644-train | 23.91242584230633 | large | 13.399326074391526 | normal | small | | way-1509913874-train | 22.863538139008256 | large | 13.25171301816282 | normal | medium | | node-10906431111-train | 19.343979528270076 | normal | 11.299278438825038 | normal | small | | way-1371949093-train | 21.989554479062754 | large | 10.69185390351373 | normal | small | | node-11124008879-train | 5.8411501476730825 | small | 1 | small | small | | node-11123957264-train | 5.680693306760305 | small | 1 | small | small | | node-11123957263-train | 6.077678181048749 | small | 1 | small | medium | | node-11123957262-train | 6.589418424596375 | small | 1 | small | small | | node-11137229131-train | 5.863478213283729 | small | 1 | small | medium | | node-11123957261-train | 7.112969455288632 | small | 1 | small | medium | | node-11123957260-train | 5.640877969599533 | small | 1 | small | medium | | node-11123957259-train | 7.1045644829225125 | small | 1 | small | small | | node-11123957258-train | 4.736093112266822 | small | 1 | small | small | | node-7811274282-train | 6.900642472491288 | small | 1 | small | medium | | node-11123957257-train | 7.646233144528313 | small | 1 | small | small | | node-11123957256-train | 5.056947371763632 | small | 1 | small | small | | node-11123957255-train | 4.927235805363343 | small | 1 | small | small | | node-11123957254-train | 5.745718499963564 | small | 1 | small | large | | node-7823687860-train | 8.02170727192101 | small | 1 | small | medium | | node-11090502640-train | 4.912111767680694 | small | 1 | small | small | | node-7824113164-train | 10.241061324106585 | normal | 1 | small | meduium | | node-7826330163-train | 8.410610087906235 | small | 1 | small | medium | | node-11076303060-train | 5.279269414471205 | small | 1 | small | small | | node-11076303059-train | 5.187446966642485 | small | 1 | small | medium | | node-11124008866-train | 6.061597524264933 | small | 1 | small | medium | | node-11070321570-train | 6.874076324667953 | small | 1 | small | small | </details> Many discrepancies because the yards are tagged as node, and sometimes use the wrong railway landuse classifying a small yard as part of a larger yard using the entire landuse area (and contained railway lines) For example https://www.openstreetmap.org/node/11123957262, https://openrailwaymap.app/#view=18.17/40.343798/-79.898794, does not have an area or railway landuse. For example https://www.openstreetmap.org/node/7820403495, https://openrailwaymap.app/#view=15.2/40.744233/-74.106655, uses the entire railway landuse classifying the yard as larger than it should be. ### Poland <details> | id | importance\_before | station\_size\_before | importance | station\_size | tagged\_size | | :--- | :--- | :--- | :--- | :--- | :--- | | node-9588851935-train | 127.47678471809382 | large | 63.64348642409899 | large | large | | node-4634131656-train | 120.30576000561089 | large | 62.75987219321768 | large | very\_large | | node-11561464826-train | 115.04721557913263 | large | 61.39640719858259 | large | large | | node-10310735660-train | 113.66969059222404 | large | 60.05075918138912 | large | very\_large | | node-9258510861-train | 109.26794114181347 | large | 57.89966016947278 | large | very\_large | | node-4290859700-train | 109.15010599266915 | large | 56.749450218593545 | large | large | | node-7629121108-train | 110.26450619203577 | large | 55.99774698628775 | large | large | | node-9160881069-train | 100.18480803614636 | large | 53.51830928452844 | large | very\_large | | node-3502962068-train | 86.69787957680596 | large | 43.58261755173873 | large | large | | node-9215829078-train | 78.97492355721569 | large | 39.91002342317538 | large | very large | | node-622509997-train | 71.32052793281258 | large | 36.14731501769985 | large | very\_large | | node-9056263871-train | 76.19929274033395 | large | 35.77286174350236 | large | very\_large | | node-545089000-train | 65.99515318706773 | large | 35.371615326422834 | large | large | | node-9588851941-train | 63.31841469152907 | large | 33.45418580243432 | large | large | | node-386577386-train | 58.58486641278871 | large | 31.08157246244946 | large | medium | | node-9056263869-train | 73.80146718595401 | large | 30.998142013045825 | large | large | | node-11107636909-train | 63.301738663997824 | large | 30.21672692098919 | large | large | | node-3436700747-train | 57.69691119049318 | large | 30.105020635228584 | large | medium | | node-3497791323-train | 55.48203618286575 | large | 28.85251998954727 | large | large | | node-9723659543-train | 53.90075335584052 | large | 28.435329226413973 | large | large | | node-9056263870-train | 62.367489549822274 | large | 27.22871723248022 | large | very\_large | | node-9056263872-train | 55.08624175746482 | large | 26.86552891170447 | large | very\_large | | node-655388166-train | 48.293992375766884 | large | 25.958332466308594 | large | large | | node-626623662-train | 50.31607316606184 | large | 25.687357968935217 | large | large | | node-9060585849-train | 55.23278955426675 | large | 25.41265885146227 | large | medium | | node-10193023207-train | 49.56367123350351 | large | 25.319596819184486 | large | large | | node-3700975323-train | 50.59836849404884 | large | 24.90549031230935 | large | medium | | node-3474843860-train | 48.093222912179804 | large | 23.88467542630913 | large | medium | | node-3884398161-train | 44.03393665471145 | large | 22.63840947454754 | large | large | | node-10998435742-train | 44.38794380420779 | large | 22.322415594460967 | large | medium | | node-3701251989-train | 39.92343278257809 | large | 21.3748112835241 | large | small | | node-10755686841-train | 38.540251400240166 | large | 20.883487466482098 | normal | medium | | node-1908157897-train | 38.05086266174645 | large | 19.799227712240803 | normal | medium | | node-3415944554-train | 37.62500203851556 | large | 19.781387239255377 | normal | small | | node-1829995036-train | 36.70437902478702 | large | 19.641059874592784 | normal | medium | | node-3661604648-train | 36.15755923845969 | large | 19.333057559092882 | normal | medium | | node-1043624447-train | 35.9923682292329 | large | 18.88795199771599 | normal | medium | | node-6697196741-train | 36.071429526677 | large | 18.785312261188697 | normal | medium | | node-3439493675-train | 35.528959131333 | large | 18.766561574832572 | normal | medium | | node-3735918918-train | 37.4875739563211 | large | 18.74439380662437 | normal | medium | | node-3727624805-train | 34.51145781067479 | large | 18.586139632828637 | normal | medium | | node-9672789772-train | 34.4927440858636 | large | 18.55825251250922 | normal | small | | node-9212732831-train | 39.989765455915226 | large | 18.5009552209192 | normal | medium | | node-3390988551-train | 34.27779394095527 | large | 18.35357292498563 | normal | small | | node-529051019-train | 35.34990268751597 | large | 18.190405826703298 | normal | small | | node-3659855222-train | 41.415352409281766 | large | 17.687039945673074 | normal | small | | node-12066389744-train | 32.911145076340915 | large | 17.386074476090602 | normal | medium | | node-9229865736-train | 31.901710464935032 | large | 17.015127010909143 | normal | large | | node-3885958406-train | 31.695923366242337 | large | 16.402727382836744 | normal | medium | | node-655388172-train | 30.248616892330258 | large | 16.36762690256886 | normal | medium | | node-1908157898-train | 34.46427800767029 | large | 16.260497471957734 | normal | medium | | node-3881556257-train | 30.895196523987938 | large | 16.074985534155445 | normal | medium | | node-3396120384-train | 33.47593996021947 | large | 16.03229405570172 | normal | medium | | node-3846440157-train | 29.344746416703057 | large | 15.534990721635799 | normal | medium | | node-9723659544-train | 28.680280817289066 | large | 15.44923802881992 | normal | medium | | node-1991387669-train | 28.695906150767858 | large | 15.336889247758963 | normal | small | | node-7096269528-train | 29.157583376437323 | large | 15.328360573985215 | normal | medium | | node-9327843941-train | 27.962932965989534 | large | 15.18157800386067 | normal | medium | | node-291768074-train | 27.944096337540238 | large | 15.090336647725534 | normal | medium | | node-9056685266-train | 29.526508733802338 | large | 15.067799187138164 | normal | small | | node-2429010733-train | 27.94309269315308 | large | 14.778806015519566 | normal | small | | node-3423942331-train | 27.638315086434865 | large | 14.748074846792882 | normal | small | | node-9210377654-train | 29.032499029150156 | large | 14.692352931842876 | normal | medium | | node-3776210472-train | 28.272982063988707 | large | 14.370290903715665 | normal | small | | node-10772798328-train | 31.62385008709555 | large | 14.309394788994169 | normal | medium | | node-3514143823-train | 28.76278381323106 | large | 14.269032408727538 | normal | medium | | node-3764978186-train | 26.124014999232287 | large | 14.203640695658349 | normal | small | | node-11398889086-train | 27.657793721909105 | large | 13.99367092335836 | normal | medium | | node-11104539106-train | 26.17964566747567 | large | 13.780856499578157 | normal | medium | | node-8643487024-train | 26.79212845033201 | large | 13.580509025648603 | normal | medium | | node-3702565053-train | 28.366320732016653 | large | 13.108543995806832 | normal | medium | | node-5635194684-train | 23.790758067914552 | large | 12.82794366397499 | normal | medium | | node-9225167670-train | 24.22789980864288 | large | 12.617076093654882 | normal | small | | node-3428332027-train | 23.748725830046936 | large | 12.60260360908791 | normal | small | | node-9053455939-train | 24.002371007621317 | large | 12.292359297979166 | normal | small | | node-3016218903-train | 23.31452851923329 | large | 12.214683737890361 | normal | small | | node-4545281665-train | 21.920603759107724 | large | 11.94526676887783 | normal | medium | | node-2081722791-train | 20.999501862662445 | normal | 11.35758698463868 | normal | medium | | node-3004352018-train | 20.02101535332786 | normal | 10.871585363861678 | normal | small | | node-3932003721-train | 23.000005978915425 | large | 10.237162307308143 | normal | small | | node-3884637706-train | 19.82227354028401 | normal | 9.920973157446591 | normal | small | | node-4072941627-train | 18.220421229392084 | normal | 9.755878201437744 | normal | small | | node-9186674851-train | 15.77991978036381 | normal | 8.73584370541608 | small | small | | node-867581963-train | 14.978208912288105 | normal | 8.317016600001256 | small | small | | node-9178404519-train | 14.523642786983105 | normal | 8.05572159492489 | small | small | | node-3517446618-train | 14.769073820073732 | normal | 7.983022632090104 | small | small | | node-9178404518-train | 13.225253072746971 | normal | 7.34750601025645 | small | small | | node-2152465751-train | 13.077703525436037 | normal | 7.074416466925798 | small | small | | node-3671630910-train | 8.719138559806375 | small | 5.105871517572376 | small | large | | node-10727730899-train | 8.541815979525875 | small | 5.016949347241798 | small | large | | node-10997033866-train | 8.166560727467312 | small | 4.829577832116383 | small | large | | node-10998435661-train | 8.140837748760475 | small | 4.8158932134558885 | small | medium | | node-2839093793-train | 8.314588474982859 | small | 4.778507754658241 | small | medium | | node-3722938126-train | 8.037953820235376 | small | 4.7479515674945585 | small | medium | | node-9747028044-train | 8.03106810128655 | small | 4.742298065249081 | small | medium | | node-11433159595-train | 8.002684163925682 | small | 4.727321443335079 | small | small | | node-3725991462-train | 7.628428891713411 | small | 4.524047184450641 | small | medium | | node-3718252838-train | 7.458940061160051 | small | 4.375473728836765 | small | large | | node-3310908777-train | 7.401159377037452 | small | 4.375205357512298 | small | medium | | node-3405489205-train | 7.39544308005418 | small | 4.36088279758893 | small | medium | | node-9121150648-train | 7.317894427095966 | small | 4.350760328876902 | small | medium | | node-2053612978-train | 7.3526940348520196 | small | 4.2938248945061925 | small | medium | | node-9057402084-train | 7.222394055066258 | small | 4.2830003511255 | small | medium | | node-1586996067-train | 7.286621942197655 | small | 4.2554823999333955 | small | medium | | node-5618266186-train | 7.232702106214263 | small | 4.208304436653121 | small | medium | | node-11003080970-train | 7.015195210929295 | small | 4.1650728301535125 | small | medium | | node-2861512043-train | 6.930118526582972 | small | 4.076657931122204 | small | medium | | node-1586996063-train | 6.9142425242873085 | small | 4.06398111481797 | small | small | | node-9056263864-train | 6.85594935196208 | small | 4.0615663415673335 | small | small | | node-2428994222-train | 6.892877451155809 | small | 4.045842049092659 | small | small | | node-2859997788-train | 6.850702757042433 | small | 4.032760718620157 | small | small | | node-1991400827-train | 6.663200152055517 | small | 3.9615523768352623 | small | small | | node-8497276942-train | 6.4947233183427295 | small | 3.901770735047568 | small | small | | node-3500661292-train | 6.464891998404026 | small | 3.900654422805179 | small | medium | | node-3390960208-train | 6.43452771761012 | small | 3.8807057311571103 | small | medium | | node-431237714-train | 6.449600185119957 | small | 3.8796126431154896 | small | medium | | node-3393496166-train | 6.463149506391382 | small | 3.8488375130251367 | small | medium | | node-3458961439-train | 6.432157341608329 | small | 3.840660612051203 | small | small | | node-3631161539-train | 6.287073186827367 | small | 3.829786362149486 | small | small | | node-3170964677-train | 6.542474024236943 | small | 3.8215147120881245 | small | small | | node-9949192438-train | 6.308148515599393 | small | 3.698816405754022 | small | small | | node-3390869367-train | 5.95941534156506 | small | 3.618561047613525 | small | small | | node-4098328060-train | 5.950913373612914 | small | 3.612960540759721 | small | medium | | node-3415725769-train | 5.952961046955196 | small | 3.606549830855196 | small | medium | | node-10224419344-train | 5.943955027506459 | small | 3.594844213436691 | small | small | | node-2157512334-train | 5.9570487170220465 | small | 3.5840498759325032 | small | small | | node-3517472782-train | 5.859920533232766 | small | 3.5816483182980807 | small | small | | node-9057402085-train | 5.887721398621651 | small | 3.579094117648842 | small | small | | node-9056263865-train | 5.928299351503365 | small | 3.5762827732119056 | small | medium | | node-3421438328-train | 5.947475693092928 | small | 3.5740686514265687 | small | small | | node-2872332514-train | 5.934926893938189 | small | 3.571723846598185 | small | small | | node-3463181117-train | 5.922803100983279 | small | 3.5435761543791022 | small | small | | node-11866635439-train | 5.920634755486359 | small | 3.530859065797364 | small | small | | node-3461368870-train | 5.883266827963753 | small | 3.52917818743874 | small | small | | node-4012854714-train | 5.2970883823816255 | small | 3.2769578771897034 | small | small | | node-9159421474-train | 5.417887316993997 | small | 3.2723806636312758 | small | small | | node-9324880156-train | 5.299921306861023 | small | 3.2695155031877716 | small | small | | node-3519597687-train | 5.30548052054339 | small | 3.264058321555146 | small | small | | node-4078166095-train | 5.292407788641406 | small | 3.260698784795387 | small | small | | node-2187731625-train | 5.297192536163727 | small | 3.2597573256728256 | small | small | | node-634798552-train | 5.282440981871868 | small | 3.2300117337102017 | small | small | | node-4971046908-train | 5.2890639224033205 | small | 3.2159916684184844 | small | small | | node-2872707914-train | 5.2784844620823375 | small | 3.205557008325077 | small | small | | node-3944165527-train | 5.291800651788056 | small | 3.1874805404611366 | small | small | | node-1507923333-train | 5.268914086738566 | small | 3.1859121572746543 | small | small | | node-11065353089-train | 5.179720030904963 | small | 3.1843452573716857 | small | medium | | node-10801144140-train | 4.920477916808309 | small | 3.0425527690305736 | small | small | | node-3744316827-train | 4.521229651317418 | small | 2.8796653393048333 | small | small | | node-2183602705-train | 4.521312011304429 | small | 2.8557396777576116 | small | small | | node-2471989474-train | 4.519609883699735 | small | 2.8338991856693925 | small | small | | node-11064704052-train | 4.517913922622156 | small | 2.8308782687193537 | small | small | | node-2872737645-train | 4.520209964358882 | small | 2.812824429550198 | small | small | | node-10773961203-train | 3.4953292080562846 | small | 2.266337417657498 | small | small | </details> Discrepancies https://www.openstreetmap.org/node/386577386: medium (tagged) » large (calculated) https://www.openstreetmap.org/node/3436700747: medium (tagged) » large (calculated) https://www.openstreetmap.org/node/9060585849: medium (tagged) » large (calculated) https://www.openstreetmap.org/node/3700975323: medium (tagged) » large (calculated) https://www.openstreetmap.org/node/3474843860: medium (tagged) » large (calculated) https://www.openstreetmap.org/node/10998435742: medium (tagged) » large (calculated) https://www.openstreetmap.org/node/3701251989: small (tagged) » large (calculated) https://www.openstreetmap.org/node/3415944554: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/9672789772: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3390988551: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3659855222: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/9229865736: large (tagged) » normal (calculated) https://www.openstreetmap.org/node/1991387669: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/9056685266: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/2429010733: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3423942331: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3776210472: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3764978186: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/9225167670: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3428332027: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/9053455939: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3016218903: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3004352018: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3932003721: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3884637706: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/4072941627: small (tagged) » normal (calculated) https://www.openstreetmap.org/node/3671630910: large (tagged) » small (calculated) https://www.openstreetmap.org/node/10727730899: large (tagged) » small (calculated) https://www.openstreetmap.org/node/10997033866: large (tagged) » small (calculated) https://www.openstreetmap.org/node/10998435661: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/2839093793: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3722938126: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/9747028044: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3725991462: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3718252838: large (tagged) » small (calculated) https://www.openstreetmap.org/node/3310908777: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3405489205: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/9121150648: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/2053612978: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/9057402084: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/1586996067: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/5618266186: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/11003080970: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/2861512043: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3500661292: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3390960208: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/431237714: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3393496166: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/4098328060: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/3415725769: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/9056263865: medium (tagged) » small (calculated) https://www.openstreetmap.org/node/11065353089: medium (tagged) » small (calculated)
Adds [AWS (Automatic Warning System)](https://en.wikipedia.org/wiki/Automatic_Warning_System) system related signs, namely: - AA01 - Commencement of AWS Gap - AA02 - Termination of AWS Gap - AA03 - Commencement of AWS Special Working - AA04 - Termination of AWS Special Working See https://www.railsigns.uk/sect12page1.html for an explanation of the signs and their associated uses - [x] Signs tagged exist on the map* - [x] Added to the [wiki page](https://wiki.openstreetmap.org/wiki/OpenRailwayMap/Tagging_in_the_United_Kingdom) \* Sign AA01 - Commencement of AWS Gap has not yet been tagged as far as I am aware on the map.
Added more danish signals and unified the graphics state so it shows the
passive state for each signal, ie. a red light ("stop") for main signals
and 2 whites horizontally ("forbikørsel forbudt") for dwarfes and PU
type signal.
Based on 20 years of driving trains and educating train drivers in
Denmark, and on the tags in
[wiki/OpenRailwayMap/Tagging_in_Denmark](https://wiki.openstreetmap.org/wiki/OpenRailwayMap/Tagging_in_Denmark),
so the signals should be pretty solid. But it is my first attempt at a
pull request, so fingers crossed that I have done everything according
to book on the technical side.
---------
Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
This adds rendering for the ZST-90 train protection system in Switzerland. I tried to choose a color which doesn't clash with the other train protection systems in Switzerland and the border areas in AT/DE/FR/IT. Example: <img width="1224" height="791" alt="image" src="https://github.com/user-attachments/assets/6e2940ae-bfbd-4c43-9ade-87ce15145d49" /> --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
The white cross indicating a deactivated signal, was visible in other layers than the train protection layer. https://openrailwaymap.app/#view=18/50.944849/6.957327&style=electrification <img width="1005" height="608" alt="image" src="https://github.com/user-attachments/assets/1e009efa-5a43-4960-91fd-93d43b859467" />
This adds the diamond-shaped board placed at the last signal before station entry signals in system N. I tried to add it the same way like the additional board for repeated distant signals (with two stars), but it seems that is not possible since I wanted to match for two tags (`railway:signal:station_distant=CH-FDV:568` and `railway:signal:station_distant:form=sign`). So I just added it as a separate signal, and placed it in the file so it always (correctly) appears above the distant/main signal. I created the SVG myself from scratch. http://localhost:8000/#view=18.66/47.4052253/8.5358631&style=signals (the additional unknown signal is an unrelated shunting signal) <img width="457" height="477" alt="image" src="https://github.com/user-attachments/assets/65c3f71d-2181-4d69-ac2b-df171084f952" />
Just like junctions and spur junctions. Closes #809 http://localhost:8000/#view=16.1/52.35218/4.949464 <img width="679" height="516" alt="image" src="https://github.com/user-attachments/assets/1ea1dafa-5cd8-4a18-8416-ed6779beb974" /> http://localhost:8000/#view=14.81/52.36714/4.93524 <img width="456" height="1060" alt="image" src="https://github.com/user-attachments/assets/beecbe22-501b-4547-af70-cf252cfb0b17" />
This is mostly noticable when clicking on a signal, and waiting up to a
few seconds to view the popup content.
The problem was the SQL query, filtering by the primary key. The indices
were not the problem, but the casting of the primary key, confusing
Postgres whether or not the index could be used.
Essentially a query with a perfect index lookup became a full table
scan...
Comparison of the executed signals query below.
Before:
```sql
SELECT * from signals_railway_signals_view where id = '123'::numeric;
```
with plan
```
Gather (cost=1001.27..13590.01 rows=1371 width=3811) (actual time=148.976..159.662 rows=0.00 loops=1)
Workers Planned: 2
Workers Launched: 2
Buffers: shared hit=312358
-> Nested Loop (cost=1.27..12452.91 rows=571 width=3811) (actual time=136.218..136.221 rows=0.00 loops=3)
Join Filter: (s.osm_id = sd.signal_id)
Buffers: shared hit=312358
-> Nested Loop (cost=0.85..11998.10 rows=902 width=3623) (actual time=136.217..136.219 rows=0.00 loops=3)
Buffers: shared hit=312358
-> Parallel Index Scan using signals_pkey on signals s (cost=0.42..11030.48 rows=1685 width=3507) (actual time=136.216..136.216 rows=0.00 loops=3)
Filter: ((osm_id)::numeric = '123'::numeric)
Rows Removed by Filter: 269676
Index Searches: 1
Buffers: shared hit=312358
-> Index Scan using signal_features_signal_id_index on signal_features sf (cost=0.42..0.56 rows=1 width=116) (never executed)
Index Cond: (signal_id = s.osm_id)
Filter: (layer = 'signals'::signal_layer)
Index Searches: 0
-> Index Scan using signal_direction_signal_id_index on signal_direction sd (cost=0.42..0.44 rows=1 width=17) (never executed)
Index Cond: (signal_id = sf.signal_id)
Index Searches: 0
Planning:
Buffers: shared hit=48
Planning Time: 1.692 ms
Execution Time: 160.141 ms
```
After:
```sql
SELECT * from signals_railway_signals_view where id = 123;
```
with plan
```
Nested Loop (cost=1.27..2.03 rows=1 width=3811) (actual time=0.029..0.030 rows=0.00 loops=1)
Buffers: shared hit=3
-> Nested Loop (cost=0.85..1.30 rows=1 width=3615) (actual time=0.028..0.029 rows=0.00 loops=1)
Buffers: shared hit=3
-> Index Scan using signals_pkey on signals s (cost=0.42..0.64 rows=1 width=3507) (actual time=0.028..0.028 rows=0.00 loops=1)
Index Cond: (osm_id = 123)
Index Searches: 1
Buffers: shared hit=3
-> Index Scan using signal_features_signal_id_index on signal_features sf (cost=0.42..0.65 rows=1 width=116) (never executed)
Index Cond: (signal_id = 123)
Filter: (layer = 'signals'::signal_layer)
Index Searches: 0
-> Index Scan using signal_direction_signal_id_index on signal_direction sd (cost=0.42..0.64 rows=1 width=17) (never executed)
Index Cond: (signal_id = 123)
Index Searches: 0
Planning Time: 2.104 ms
Execution Time: 0.342 ms
```
Part of #970 This pull request reorders all similar, so they are not grouped by the current style names, but by their functional element, such as stations, railway lines, signals boxes, signals, etc. No functional changes.
Part of #970 Merge all map layers for the same features, which were previously duplicated because of different map styles. New global map state is introduced per feature type (group of map style layers), to distinguish how to render each feature. For example stations can be rendered with their `station` attribute (infrastructure and route styles), with their operator, or not at all. This pull request will remove the need to have a global map state named `style`, and each map style will configure the relevant map features using the UI. At a later time, these map features will become fully configurable to be able to create custom map views. The only visible change will be that while changing map styles using the map buttons, features that remain on the map will not disappear and re-appear, but just be restyled.
This aligns the shown features between the infrastructure and operator layer Features on the map in the operator layer, where no operator is known, are shown with a gray color. http://localhost:8000/#view=9.93/48.6653/17.2549&style=operator: <img width="1108" height="567" alt="image" src="https://github.com/user-attachments/assets/feb00bc8-b6d7-4117-bf3a-58d3ccc96231" />
Currently, the icons for feather junction indicators bear a resemblance to the actual signal, but there is no shared 'pivot light'. The re-drawn icons now share a common pivot light, and have been created referencing dimensions from the relevant RSSB standard generally, and technical drawings for feather JIs from signalling equipment manufacturers. Whilst there is also the option for an LED 'bar' of light, this is not tagged, and I have not created the icons for it. Additionally, this adds 4 new icons for the following combinations (relatively easy to do so when drawing the others): 1245, 12345, 12456, and 123456. I am aware of a signal using feather JI 12345, W55 signal just outside London Waterloo, which is part of why I decided to do this. It is currently rendered as 1234.
Adds Queensland (Australia) [AWS signs](https://wiki.openstreetmap.org/wiki/Australian_Tagging_Guidelines/Railway_Signals/QLD#:~:text=AWS%20applies) to ORM. Height 16 has been used for all elements for consistency.
W55 signal is still rendered as a JI with positions 1,2,3,4, and not 1,2,3,4,5. (https://openrailwaymap.app/#view=20/51.4980595/-0.1147942&style=signals) This is because whilst the icons were added in #1048, I mistakenly thought that it was already supported, and just lacking the icon, and thus falling back to an available icon. However this was not the case, and new tagging interpretation lines were required for the 4 new icons of 1245, 12345, 12456, and 123456. This PR adds those lines to the relevant JI feather tagging selections. Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
This tag will replace ref:FR:IDFM as the gtfs:stop_id:* tag got standardized on OpenStreetMap. Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Last section of taginfo now contains the known operator values: <img width="1205" height="343" alt="image" src="https://github.com/user-attachments/assets/4dfb1f8f-3c65-4e86-b58e-187de51d1115" />
Fixes #1065 The visibility was always set to `none`, for every layer. http://localhost:8000/#view=16.67/51.189027/6.687403/0/3 <img width="864" height="651" alt="image" src="https://github.com/user-attachments/assets/bbb044f6-3f48-401f-82ae-83fd3f6c6c7d" />
Part of #970 Reduce the amount of layers for the high zoom railway track style. Before: 821 layers in style After: 586 layers in style
Currently, Australia has 3 different systems using yellow, which are
hard to distinguish ($`{\color{#b58a00} \blacksquare\color{#ccaa00}
\blacksquare\color{#ffcc00} \blacksquare}`$).
One of these systems is also used in the UK, and the other is also used
in Korea. so we have to play a game a sudoku to keep the colours unique
in all regions 😆
This PR proposes 4 changes:
1. 🇦🇺 TMACS $`{\color{#ffcc00} \blacksquare}`$ → $`{\color{#66cc33}
\blacksquare}`$
2. 🇦🇺 ATMS $`{\color{#0096d4} \blacksquare}`$ → $`{\color{#4fb8af}
\blacksquare}`$
3. 🇦🇺🇰🇷 ATS $`{\color{#b58a00} \blacksquare}`$ → $`{\color{#ff7033}
\blacksquare}`$
4. 🇰🇷 KTCS $`{\color{#c54800} \blacksquare}`$ → $`{\color{#654321}
\blacksquare}`$
---
Full list for each affected country:
AU:
- ATS $`{\color{#b58a00} \blacksquare}`$ → $`{\color{#ff7033}
\blacksquare}`$
- AWS $`{\color{#ccaa00} \blacksquare}`$
- TMACS $`{\color{#ffcc00} \blacksquare}`$ → $`{\color{#66cc33}
\blacksquare}`$
- TOW $`{\color{#884400} \blacksquare}`$
- TPWS $`{\color{#ffc0cb} \blacksquare}`$
- PTC $`{\color{#cc0033} \blacksquare}`$
- CBTC $`{\color{#cc0052} \blacksquare}`$
- ATP $`{\color{#cc00bb} \blacksquare}`$
- ATC $`{\color{#6600cc} \blacksquare}`$
- ETCS-2 $`{\color{#0058cc} \blacksquare}`$
- ETCS-1 $`{\color{#006eff} \blacksquare}`$
- ATMS $`{\color{#0096d4} \blacksquare}`$ → $`{\color{#4fb8af}
\blacksquare}`$
- None $`{\color{#000000} \blacksquare}`$
- Unknown $`{\color{#999999} \blacksquare}`$
KR:
- ATS $`{\color{#b58a00} \blacksquare}`$ → $`{\color{#ff7033}
\blacksquare}`$
- KTCS $`{\color{#c54800} \blacksquare}`$ → $`{\color{#654321}
\blacksquare}`$
- CBTC $`{\color{#cc0052} \blacksquare}`$
- ATC $`{\color{#6600cc} \blacksquare}`$
- ETCS-1 $`{\color{#006eff} \blacksquare}`$
- TVM $`{\color{#66cc33} \blacksquare}`$
- Unknown $`{\color{#999999} \blacksquare}`$
GB (no change):
- AWS $`{\color{#ccaa00} \blacksquare}`$
- TPWS $`{\color{#ffc0cb} \blacksquare}`$
- CBTC $`{\color{#cc0052} \blacksquare}`$
- ATP $`{\color{#cc00bb} \blacksquare}`$
- ETCS-2 $`{\color{#0058cc} \blacksquare}`$
- ETCS-1 $`{\color{#006eff} \blacksquare}`$
- TVM $`{\color{#66cc33} \blacksquare}`$
- None $`{\color{#000000} \blacksquare}`$
- Unknown $`{\color{#999999} \blacksquare}`$
<table>
<tr>
<td></td>
<td>Before</td>
<td>After</td>
</tr>
<tr>
<td>🇦🇺</td>
<td>
<img width="932" height="699" alt="image"
src="https://github.com/user-attachments/assets/b303d91c-c14a-4df7-b2e6-1f6f49b256f4"
/>
<img width="334" height="240" alt="image"
src="https://github.com/user-attachments/assets/0e6daedd-f9ed-40e5-adf1-478c9f6ba475"
/>
</td>
<td>
<img width="985" height="708" alt="image"
src="https://github.com/user-attachments/assets/7f2406d2-0204-4a22-9aa1-63e6644dbd4d"
/>
<img width="393" height="262" alt="image"
src="https://github.com/user-attachments/assets/6f9515d9-6bd9-48dc-8fed-7d5389d988ea"
/>
</td>
</tr>
<tr>
<td>🇰🇷</td>
<td>
<img width="582" height="669" alt="image"
src="https://github.com/user-attachments/assets/a9519fa5-8e33-41e5-a869-b0355fe1fbef"
/>
</td>
<td>
<img width="561" height="713" alt="image"
src="https://github.com/user-attachments/assets/71e923dc-6100-42f4-a266-6a7410fff689"
/></td>
</tr>
<tr>
<td>🇬🇧</td>
<td colspan=2>no change</td>
</tr>
</table>
---
An alterantive idea is to change AWS $`{\color{#ccaa00} \blacksquare}`$
instead of ATS $`{\color{#b58a00} \blacksquare}`$. Then it would impact
AU+GB intead of AU+KR.
OSM data has changed.
…1072) Hi. I would like to add three more metropolitan railway operator in Indonesia, as well as new tagging system for Indonesian railway signals. These tags has been implemented in some stations, like Bandung area and Kertosono. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
For example http://localhost:8000/#view=16.34/52.006429/4.359293, https://www.openstreetmap.org/relation/19784864, https://www.openstreetmap.org/relation/19784824. Tram stops are both stations and stop positions. Before <img width="1213" height="971" alt="image" src="https://github.com/user-attachments/assets/fb1cc992-0f28-4b02-81b2-518521216c6a" /> After <img width="1213" height="971" alt="image" src="https://github.com/user-attachments/assets/ab638a2d-8fb7-469d-b281-be0f12978447" />
Part of #970 Closes #1010 Closes #1064 ## Goal Allow configuring custom map styles alongside the current map style presets. ## Changes ### Map style The map style can be selected for each element on the map. Current list is: - Tracks - Operating sites (stations) - Platforms - Switches - Points of interest - Turntables - Boxes - Substations - Catenaries <img width="1084" height="631" alt="image" src="https://github.com/user-attachments/assets/3aaf1c19-d1ce-4c83-af27-e4603993f139" /> <img width="548" height="717" alt="image" src="https://github.com/user-attachments/assets/3518725b-b64c-4bbc-8e45-451f9ff4f176" /> The style will be expanded in separate pull requests, such as configuring which signals to see, separating different types of points of interest, etc. ### Presets The presets are listed under a button, and work the same way as they used to. Selecting a preset will select the matching style. The preset is no longer stored in the URL. If the styles are shown on the map that match a preset exactly, the preset is considered "active" and shows the active indicator (small colored circle). <img width="915" height="437" alt="image" src="https://github.com/user-attachments/assets/5eacb7ea-6abd-4683-9c09-8ff5c5dac43f" /> <img width="650" height="783" alt="image" src="https://github.com/user-attachments/assets/c2ef8340-3942-491b-b7f5-9ffeb04ab205" /> ### Browser URL The browser URL will contain the selected styles which are different than the defaults. This means that sharing an URL to a map view, will let the other person see the same map. ### Historical view If OpenHistoricalMap is used as a historical railway infrastructure, the date control is always shown. If another style than "usage" is used for the tracks, the lines will be gray because the historical lines do not have speed, electrification, train protection, operator or route information. ### Legend The legend will show all elements of the chosen map style.
Closes: #1028 http://localhost:8000/#view=16.95/56.246804/12.854042 <img width="774" height="599" alt="image" src="https://github.com/user-attachments/assets/be5f3090-c121-4cc1-af56-e96b35e366b0" /> Names and values taken from Taginfo and wiki
Fixes #1076 On http://localhost:8000/#view=17.46/51.5042/-0.107255&stations=none&switches=none&pois=none&turntables=none Before <img width="1632" height="387" alt="image" src="https://github.com/user-attachments/assets/cb75a122-ec0f-4ae4-9069-fe415be74d17" /> After <img width="1632" height="387" alt="image" src="https://github.com/user-attachments/assets/4428d37b-cd6f-4ecd-80d8-3b72b2c6676a" />
Closes #1061 http://localhost:8000/#view=16.07/51.347293/0.737758&switches=none&pois=none&turntables=none <img width="1083" height="658" alt="image" src="https://github.com/user-attachments/assets/d5cc5461-a1dc-429c-926d-efc56ab4ecc8" />
The configured language is configured when the map is loaded, but is not re-configured when the language configuration is updated. This is a regression since migrating to a single style without a dynamic style reloading while the map is loaded. This pull request adds a language control which does not have any UI, but modifies the map style as the language configuration is updated through the settings, or the browser / OS language configuration (`languagechange` browser event).
Currently, when clicking a feature on the map, the properties of the features are retrieved through the OpenRailwayMap API. When the response contains images (Wikidata and Wikimedia commons), the UI makes another request to the API to fetch the image metadata, URL and attribution information. This pull request removes the second roundtrip, and resolves the images from the feature properties directly. A single response is returned that contains the required images for display in the popup. In addition, the image metadata from the Wikimedia response is emitted in the OpenRailwayMap feature API output as well. This is used in the UI, to resize the image before it is fully loaded. The popup will then no longer change in size.
Italian combined and main signals' aspect is very similar: in a certain sense, an Italian combined signal is main signal, but an Italian main signal may or may not be a combined one (because combined signal is like main signal + distant signal). They differ in this: Italian main signals (strictly speaking i.e. main signal not combined with a distant one) can show any of these tree light states: red, green, red-green. Combined signals may show much more then the previous list of three light states. For this reason i fixed Italian combined and main signal tagging scheme very close to each other. In the proposed tagging scheme, main signal states could be combined, for reason of tagging compatibility. In my opinion this is a good compromise. I also fixed an error in the 3 lights combined signal tagging scheme. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi!
Over the past years I have been working on a fork of the OpenRailwayMap.
The announcement can be found on the OpenRailwayMap mailing list and on the OpenStreetMap community forum.
The fork has several features, and is actively being developed by me and several more contributors:
At the moment the fork is hosted on https://openrailwaymap.app using Fly.io. This is purely practical, it could be hosted anywhere else.
This pull request is a starter to discuss:
openrailwaymap.org?These are open questions, any response is appreciated!